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-Key: 260114

Url: https://administrator.de/contentid/260114

Printed on: April 19, 2024 at 11:04 o'clock

Member: bastla
Solution bastla Jan 16, 2015, updated at Jan 20, 2015 at 19:54:54 (UTC)
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
Member: Bayman52
Bayman52 Jan 17, 2015 at 16:16:39 (UTC)
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
Member: schmitzi
schmitzi Jan 17, 2015 at 21:05:25 (UTC)
Goto Top
Hi,

wie sieht denn Dein Robocopy-Befehl aus ?

Gruss RS
Member: Bayman52
Bayman52 Jan 18, 2015 at 15:43:16 (UTC)
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
Member: bastla
bastla Jan 19, 2015, updated at Jan 20, 2015 at 06:11:49 (UTC)
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]
Member: Bayman52
Bayman52 Jan 19, 2015 at 17:45:26 (UTC)
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
Member: schmitzi
Solution schmitzi Jan 19, 2015, updated at Jan 20, 2015 at 19:54:30 (UTC)
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
Member: bastla
Solution bastla Jan 20, 2015 updated at 19:54:24 (UTC)
Goto Top
Hallo Bayman52!

Tippfehler - sorry face-sad

Hab's oben korrigiert.

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

Grüße
bastla
Member: Bayman52
Bayman52 Jan 20, 2015 at 16:08:38 (UTC)
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
Member: schmitzi
schmitzi Jan 20, 2015 at 16:49:59 (UTC)
Goto Top
ja supi.
Kannst Du uns ja noch auf "zur Lösung beigetragen" setzen.
Danke u Gruss
RS