oli-nux
Goto Top

Batch welche automatisch erstellten Ordner kopiert

Ich bräuchte eine Batch-Datei die einen bestimmten Unterordner eines Programmes in einen anderen Ordner kopiert.
Das Programm erzeugt in einem temporären Ordner einen Ordner der immer einen anderen Namen hat.
Nennen wir das Programm imakeitforyou, dann wird in dem Temp-Ordner ein neuer Ordner namens imakeitforyou_"Zahlen" erzeugt.
Die "Zahlen" sind dabei zufällig gewählt, so dass ich dazu nichts sagen kann.

Die Batch soll mir jetzt den erzeugten Ordner (imakeitforyou_"Zahlen") in einen von mir - auch in der Batch - anzugebenden Ordner kopieren. face-wink

Beispiel könnte so ähnlich aussehen:
IF EXIST "C:\my_prog\imakeitfouryou_1234" (
md "C:\my_prog\kopie_von_imakeitforyou"
copy "C:\my_prog\imakeitforyou_1234\*.*" "C:\my_prog\kopie_von_imakeitforyou\*.*"
)

Die Frage ist, wie die Batch aussehen muss, wenn sie den automatisch erstellten Ordner - mit den immer anderen Zahlen - auslesen und kopieren soll?

PS: Beispielcode ist nicht von mir!

Content-Key: 112147

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

Printed on: April 24, 2024 at 20:04 o'clock

Member: TobiisFreaky
TobiisFreaky Mar 23, 2009 at 13:16:48 (UTC)
Goto Top
Warum kopierst du nicht den ganzen Ordner?

also

copy C:\my_prog\imakeitforyou

LG Tobi
Member: Oli-nux
Oli-nux Mar 23, 2009 at 13:26:46 (UTC)
Goto Top
Das Problem ist, dass das Programm den Ordner, welchen ich kopieren möchte, selbständig löscht und durch einen gleichnamigen Ordnernamen ersetzt doch leider mit gaaaanz anderem Inhalt als vor dem automatischen Löschen.
Member: TobiisFreaky
TobiisFreaky Mar 23, 2009 at 13:31:08 (UTC)
Goto Top
Ja das habe ich soweit verstanden, nur du hast geschrieben, dass der Unterordner in diesem Ordner "Imakeitforyou" kopiert werden soll, warum lässt du per Batch nicht gleich den ganzen Ordner "Imakeitforyou" kopieren?!

LG Tobi
Member: Oli-nux
Oli-nux Mar 23, 2009 at 13:38:43 (UTC)
Goto Top
Habe ich auch schon probiert, das Programm erstellt mir in imakeitforyou den Ordner - nennen wir ihn thiswasivemade - löscht diesen automatisch und erstellt gleich wieder denselben Ordner nur diesmal mit anderen Inhalt.

Lasse ich per Batch also den Ordner kopieren - auch den ganzen Ordner -,dann habe ich den Inhalt der nach dem Löschen und neu erstellen des Ordners sich darin befindet.
Ich möchte also nur den Ordner auslesen bevor er automatisch gelöscht und erneut automatisch (mit neuem Inhalt) angelegt wird.

Besser erklären geht nicht.
Member: TobiisFreaky
TobiisFreaky Mar 23, 2009 at 14:07:10 (UTC)
Goto Top
Es ist also eine Aktion die mehrmals stattfindet.

DIR /AD /B > C:\Ordnerinhalt_von_imakeitfouryou.txt
FOR /F %%i IN ("C:\Ordnerinhalt_von_imakeitfouryou.txt") DO @copy %%i "C:\neuer_Speicherort"

Die erste Zeile ließt zuerst alle Ordner aus C:\Ordnerinhalt_von_imakeitfouryou.txt aus und schreibt sie in die Textdatei C:\Ordnerinhalt_von_imakeitfouryou.txt.

In der 2. zeile wird per FOR-Schleife die Text-Datei ausgelesen und in den neuen Ordner "C:\neuer_Speicherort" kopiert. Dieser Vorgang wiederholt sich solange, wie Strings in der Text-Datei enthalten sind.

Das dürfte so für dein Gebrauch genügen.

LG Tobi
Member: Oli-nux
Oli-nux Mar 23, 2009 at 14:15:15 (UTC)
Goto Top
Danke, damit kann ich aber garnichts anfangen.
Member: bastla
bastla Mar 23, 2009 at 14:58:38 (UTC)
Goto Top
Hallo Olinux!

Eigentlich sollte eine Zeile Batch (bei Direkteingabe an der Kommandozeile nur %i anstelle von %%i) genügen:
for /d %%i in ("C:\my_prog\imakeitfouryou_*.*") do xcopy "%%i\*.*" "C:\my_prog\kopie_von_imakeitforyou\"
bzw wenn die kopierten Dateien in einen Unterordner sollen:
for /d %%i in ("C:\my_prog\imakeitfouryou_*.*") do xcopy "%%i\*.*" "C:\my_prog\kopie_von_imakeitforyou\%%~nxi\"
Grüße
bastla