Supportnet Computer
Planet of Tech

Supportnet / Forum / BS-Sonstige

Ist es möglich eine Datei per BATCH zu vervielfältigen?





Frage

Ich wolte gerade ine Datei auf bequeme Weise ver-I-fachen. Über die Windowsoberfläche kommt mir das mit tausendfachem copy und paste sehr umständlich vor. Daher wollte ich eine Batch Datei schreiben. Leider läuft das nicht so wie geplant. Kann mir jemand helfen? Hier mein Versuch: FOR /L %%I IN (1,1,5) DO BEGIN xcopy didi-man.pdf e:\testren e:\test\didi-man.pdf buhman%I%.pdf END Sollte bewirken, daß die Datei didiman.pdf vom selben Verzeichnis in der auch die Batch Datei ist, nach E:\test kopiert wird, dann in didiman-so-und-so-viel.pdf umbenannt wird und ich dann am Ende buhman1.pdf bis buhman-tausend-oder-noch-mehr.pdf habe. Leider rafft er das mit buhman%I%.pdf scheinbar nicht und nennt sie einfach buhman.pdf und fragt dann beim nächsten Mal natürlich ob die vorhandene buhman.pdf überschreiben werden soll. Und das mit BEGIN kommentiert er folgendermaßen: Der Befehl BEGIN ist entweder falsch geschrieben oder konnte nicht gefunden werden... Jede Hilfe wird dankend angenommen, Grüße, ültje P.S. Die Dateinamen hören sich komisch an, sind aber vorgegeben und nicht auf meinem Mist gewachsen

Antwort 1 von thomas.voigtlaender

hi,
mit dos wirst du nur bis buhman99.pdf kommen.
dos kann nur 8.3 dateinamen (der name selber kann
dann nur 8 zeichen lang sein.
reicht das?

thomas

Antwort 2 von _gau_

@thomas
Er arbeitet mit einer Batch unter Windows. Wen interessieren da 8.3-Konventionen? Und die Nutzung von "for /l" zeigt, daß es ein NT-System ist ;-)

@ültje
Mach mal so:


@echo off
copy didi-man.pdf e:\test\buhman1.pdf
for /l %%i in (2,1,25) do copy e:\test\buhman1.pdf e:\test\buhman%%i.pdf

[gau]

Antwort 3 von ueltje

Hi,

ich verwende eigentlich nicht DOS, sondern ich rufe die Datei auf und die Eingabeaufforderung unter WinXP führt sie aus. Die sollte eigentlich mehr als 8+3 Zeichen verarbeiten können.

Ich sehe das Problem darinne, daß er mit buhman%I%.pdf nichts anfangen kann. Verwende ich vielleicht eine falsche Syntax?



Antwort 4 von thomas.voigtlaender

hi nochmal,
auch wenn es unter win verwendet wird kann alles was "dos-like" gemacht wird die 8.3-konvention. wenn es eng wird, dann mit der brühmten tilde.
und ein (dos-)batch kann nun mal auch nur die dos-syntax.
müsste etwa so aussehen:
for %%i in (1 2 3 4) do copy t.tmp t%%i.tmp

da wird dann t1.tmp, t2.tmp...t4.tmp draus. die dateinamen lassen sich beliebig ersetzen.

gruß
thomas

Antwort 5 von ueltje

Ich habe jetzt die vorgeschlagene Syntax genommen und nur leicht abgewandelt in:

@echo off
copy didi-man.pdf e:\test\buhman1.pdf
for /l %%i in (2,1,25) do copy e:\test\buhman1.pdf e:\test\buhahahahman%%i.pdf

Es geht problemlos und wie buhahahahman%%i.pdf im Test erwiesen hat auch mit mehr als 8+3, aber das nur am Rande.

Danke für Eure Hilfe
ültje





Antwort 6 von _gau_

Mußte ja gehen - ich teste schließlich immer (naja, fast immer ;-) bevor ich etwas poste.

Kleiner Tipp noch nachträglich:
Solltest du mal Verz./Dateinamen mit Leerzeichen haben, dann setz sie unbedingt in Anführungszeichen, z.B. "D:\Mein Testverzeichnis\Dies ist ein langer Dateiname.xyz"

[gau]

Antwort 7 von drago

Das ist nicht DOS, sondern die SHELL von XP.
DOS ist etwas anderes.



.

Antwort 8 von _gau_

@drago
Wow - das hätten wir ohne dich bestimmt nicht bemerkt ;-)

[gau]

Antwort 9 von ueltje

Niemals dran gezweifelt, daß das Problem noch vor dem insbettgehen gelöst wird ;-)

Grüße und gute Nacht,
ültje


Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: