66633
Goto Top

Batch-Datei zum kopieren

Hallo,

ich hab noch nie eine Batch-Datei erstellt und hab folgende frage.
Ich habe eine Textdatei in der in jeder Zeile eine Nummer steht. Des Weiteren hab ich noch eine PDF-Datei "Test.pdf".
Ich brauche jetzt ein Batch-Skript, welches auf die Textdatei zugreift, jede Nummer liest für jede Nummer die PDF-Datei kopiert. Zum beispiel stehen in der Textdatei die Nummern:
122
233
232
Das Skript soll dann 3 kopien von der ürsprünglichen Test.pdf im Ordner C:\ machen und die wie folgt benennen: 122_Test.pdf, 233_Test.pdf, 232_Test.pdf.

Ich hoffe ihr könnt mir weiterhelfen. Bin absoluter Newbie

Danke !!!

Content-Key: 90624

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

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

Member: bastla
bastla Jun 25, 2008 at 10:06:23 (UTC)
Goto Top
Hallo skater874 und willkommen im Forum!

Dazu genügt es eigentlich, mit "Start / Ausführen / cmd" eine Commandshell zu öffnen und folgende Zeile einzugeben:
for /f %i in (C:\Liste.txt) do @copy C:\Test.pdf C:\%i_Test.pdf>nul
Wenn Du daraus eine Batchdatei machen willst, jeweils anstelle von "%i" "%%i" schreiben.

Grüße
bastla
Mitglied: 66633
66633 Jun 25, 2008 at 11:00:31 (UTC)
Goto Top
Das soll allerdings in einen neuen Ordner rein, also:

for /f %i in (C:\Liste.txt) do copy C:\Test.pdf C:\neuerOrdner\%i_Test.pdf

nur geht der Befehl irgendwie nicht.

Wenn ich es so mache:

for /f %i in (C:\Liste.txt) do xcopy C:\Test.pdf C:\neuerOrdner\%i_Test.pdf

Da fragt er mich jedesmal obs ein Dateiname oder verzeichsniname ist, was sehr nervig ist. Wie unterbinde ich das?
Member: Biber
Biber Jun 25, 2008 at 11:48:44 (UTC)
Goto Top
Moin skater874,

willkommen im Forum.
Wie unterbinde ich das?
Besser planen und nicht so rumzappeln beim Bätchen.

Du hast ja jetzt (ein bisschen abweichend vom Plan oben) das Ziel
  • einmal einen neuen Ordner anzulegen (falls nicht da)
  • x-mal eine Datei unter einem neuen Namen dorthin zu kopieren.

Das "einmalige" ist eine Anweisung, das x-malige gehört in eine Schleifenanweisung.
if not exist "C:\neuerOrdner" md "C:\neuerOrdner"  
for /f %i in (C:\Liste.txt) do @copy C:\Test.pdf C:\neuerOrdner\%i_Test.pdf>nul

Und wenn Du mit Bätchen einsteigst... halte es flach und simpel.
Zum Kopieren einer Datei ist der COPY-Befehl das richtige Werkzeug.
Lass den XCopy noch mal einen Tag liegen für Deine Phase-Zwei-Bätche.

Grüße
Biber

P.S. und nicht nur "bastla /?" tippen, sondern auch mal "xcopy /?" oder so...