bayman52
Goto Top

Ordner über Zeichenkette suchen

Hallo zusammen, nachdem ich jetzt schon ein Woche bastle und suche, brauche ich doch eure Hilfe.

Ich habe schon eine umfangreiche Batch-Datei erstellt zum Sichern unterschiedlicher Ordner.

Jetzt stehe ich aber vor dem Problem, dass ich auch Ordner (und nur solche) kopieren muss, die eine bestimmte Zeichenkette (z.B. "T_" oder "S_" enthalten).

Ein derartiger Ordner sieht also wie folgt aus:
D:\Test\T_XXX
D:\Test\AAAA
D:\Test\BBBBB
D:\Test\S_XXX

Wie finde ich solche Ordner (ohne die anderen, die diese Zeichenkette nicht enthalten) und bekomme den Pfad in eine Variable,
damit ich diese innerhalb der Batch-Datei an robocopy übergeben kann.

Vielen Dank schon im Voraus!

Viele Grüße
Bayman52

Content-ID: 260114

Url: https://administrator.de/forum/ordner-ueber-zeichenkette-suchen-260114.html

Ausgedruckt am: 10.04.2025 um 19:04 Uhr

bastla
Lösung bastla 16.01.2015, aktualisiert am 20.01.2015 um 20:54:54 Uhr
Goto Top
Hallo Bayman52 und willkommen im Forum!

Wenn nur die unmittelbaren Unterordner des Ausgangsordners berücksichtigt werden sollen, etwa so:
for /d %%i in ("D:\Test\T_*") do echo robocopy "%%i" ...
Grüße
bastla
Bayman52
Bayman52 17.01.2015 um 17:16:39 Uhr
Goto Top
Hallo bastla,

vielen Dank für die schnelle Antwort.

Irgendetwas funktioniert noch nicht.
Robocopy weigert sich zu kopieren, obwohl das Verzeichnis richtig erkannt und im Konsolen-Fenster alles richtig angezeigt wird.
Fehlermeldung von Robocopy gibt es auch keine.
Ich bin noch am Eingrenzen des Fehlers.

Ich melde mich, sobald ich mehr weiß.

Viele Grüße
Bayman52
schmitzi
schmitzi 17.01.2015 um 22:05:25 Uhr
Goto Top
Hi,

wie sieht denn Dein Robocopy-Befehl aus ?

Gruss RS
Bayman52
Bayman52 18.01.2015 um 16:43:16 Uhr
Goto Top
Hallo schmitzi, hallo bastla,

robocopy will einfach nicht.

Ausgangssituation:

F:\Test-1\T_xxx
F:\Test-1\AAAA
F:\Test-2

Ich hätte gerne nach dem Kopieren:

F:\Test-1\T_xxx
F:\Test-1\AAAA
F:\Test-2\T_xxx

1. Problem:
robocopy "F:\Test-1\T_xxx" "F:\Test-2" /s /r:1 /w:1 /LOG:%Log_File% /purge
Der reine robocopy-Befehl funktioniert zwar, aber der Ordnername wird nicht mitkopiert.

2. Problem:
for /d %%i in ("F:\Test-1\T_*") do echo robocopy "%%i" "F:\Test-2" /s /r:1 /w:1 /LOG:%Log_File% /purge
In Verbindung mit FOR geschieht nichts, obwohl der Befehl im Konsolen-Fenster richtig angezeigt wird.

Was mache ich den falsch?

Dank schon im Voraus!

Viele Grüße
Bayman52
bastla
bastla 19.01.2015, aktualisiert am 20.01.2015 um 07:11:49 Uhr
Goto Top
Hallo Bayman52!

Wenn das Ziel "F:\Test-2\T_xxx" heißen soll, musst Du es auch so angeben ...
In Verbindung mit FOR geschieht nichts, obwohl der Befehl im Konsolen-Fenster richtig angezeigt wird.
Ändert sich das, wenn Du das echo (war zum Testen gedacht, damit Du zuerst sehen kann, was passieren würde) weglässt? face-wink
Ansonsten würde sich aber auch in diesem Fall eher
for /d %%i in ("F:\Test-1\T_*") do robocopy "%%i" "F:\Test-2\%~nxi" /s /r:1 /w:1 /LOG:%Log_File% /purge
anbieten ...

Grüße
bastla

{Edit] Tippfehler korrigiert [/Edit]
Bayman52
Bayman52 19.01.2015 um 18:45:26 Uhr
Goto Top
Hallo bastla,

bei Deinem Vorschlag erhalte ich die Meldung:

Die folgende Verwendung des Pfadoperators zur Ersetzung eines Batchparameters ist ungültig: %~nxd" /s ...

Geben Sie CALL /? oder FOR /? ein, um herauszufinden, welche Formate gültig sind.
Syntaxfehler

Viele Grüße
Bayman52
schmitzi
Lösung schmitzi 20.01.2015 aktualisiert um 20:54:30 Uhr
Goto Top
Hi,

dann springe doch vorher einfach in das Quellverzeichnis, dann hat Dein Parameter %%i nur den Ordner, nicht den ganzen Pfad.
Dann kannst Du den Parameter auch für den Zielordner verwenden.

D:
CD \TEST
for /d %%i in ("T_*") do (
robocopy "%%i" "D:\TESTBACKUP\%%i" /E /R:3 /W:5 /COPY:DAT /NP /MIR /FFT
)

(Die RoboCopy-Parameter hinten bitte noch entsprechend anpassen, habe das hier beispielhaft für einen Mirror und ohne Log-File gemacht)

So gehts auf jeden Fall, habe ich getestet

Gruss RS
bastla
Lösung bastla 20.01.2015 aktualisiert um 20:54:24 Uhr
Goto Top
Hallo Bayman52!

Tippfehler - sorry face-sad

Hab's oben korrigiert.

@ schmitzi
1
2
D:
CD \TEST
ließe sich auf
cd /d D:\test
reduzieren bzw per
1
2
3
pushd D:\test
...
popd
nur vorübergehend durchführen ...

Grüße
bastla
Bayman52
Bayman52 20.01.2015 um 17:08:38 Uhr
Goto Top
Hallo bastla, hallo schmitzi,

recht herzlichen Dank, es funktioniert!

Ich hätte vermutlich noch einige Tage gebastelt und dann alles hingeworfen.
Aber es gibt ja Euch.

Ich wünsche Euch noch eine schöne Woche!

Viele Grüße
Bayman52
schmitzi
schmitzi 20.01.2015 um 17:49:59 Uhr
Goto Top
ja supi.
Kannst Du uns ja noch auf "zur Lösung beigetragen" setzen.
Danke u Gruss
RS