Hallo,
gibt es irgendwo eine Hilfe, die beschreibt, warum man ein Doppelkomma schreiben muss bei:
for %a in ('dir *.s3m') do copy %a /B+ ,,/Y
Was es tut duerfte ja klar sein, jedoch habe ich keine Infos zu dem genauen Verhalten mit ,, gefunden. Vielleicht kann man das auch fuer andere Dinge nehmen?
Die ,, bei copy
-
- DOS-Übermensch
- Beiträge: 1035
- Registriert: Mi 31. Jan 2007, 19:04
- Wohnort: Halle
- Kontaktdaten:
Ok also mich hat etwas irritiert, dass /B hinter dem Dateinamen steht, weil das im speziellen etwas anderes macht, als wuerde man es vor die Quelle schreiben.
Dazu aus der Hilfe von Win2K (ist nicht relevant, weil das auch fuer fruehere DOS Versionen gilt):
Zu obigen Konstrukt gilt weiterhin:
Stellt sich noch die Frage:
copy test.txt+
scheint das gleiche zu tun wie copy test.txt+,,
copy test.txt+,, test1.txt
kopiert test.txt nach test1.txt. Das heisst aber die ,, sind Platzhalter fuer Quelle2 und nicht fuer Ziel ?
copy test.txt ,, ist identisch mit copy test.txt
Die Datei kann nicht in sich selbst kopiert werden.
0 Datei(en) kopiert.
Wenn man nun eine 0 Byte Datei tnull.txt hat und
copy test.txt+tnull.txt test.txt
macht, wirkt es auch wie
copy test.txt+
bzw.
copy test.txt+,,
(das /B denke man sich immer)
Also, wofuer steht nun das ,, ?!?
Dazu aus der Hilfe von Win2K (ist nicht relevant, weil das auch fuer fruehere DOS Versionen gilt):
Wenn er nach dem Dateinamen steht:Gibt an, dass eine Binärdatei kopiert wird. Wenn der Schalter /b in der Befehlszeile vor der Liste der Dateinamen steht, gilt sie für alle Dateien, deren Namen hinter dem Schalter /b stehen, bis copy auf den Schalter /a trifft. In diesem Fall gilt der Schalter /a für die Datei, deren Name direkt vor dem Schalter /a steht.
Anm: Ich glaube da ist ein Tippfehler in der Hilfe und es muss heissen: ...,bis copy auf den Schlater /a trifft...Wenn der Schalter /b hinter einem Dateinamen steht, gilt sie für die Datei, deren Name unmittelbar vor dem Schalter /b steht, sowie für alle Dateien, die auf den Schalter /b folgen, bis copy auf den Schalter /b trifft. In diesem Fall gilt der Schalter /a für die Datei, deren Name direkt vor dem Schalter /a steht.
Zu obigen Konstrukt gilt weiterhin:
Das heisst also dass Quelle1 + nun muesste Quelle2 folgen und Ziel ohne Plus und da wird der Ersatz ,, eingefuegt.Die Kommas zeigen an, dass der Parameter Ziel nicht angegeben wird
Stellt sich noch die Frage:
copy test.txt+
scheint das gleiche zu tun wie copy test.txt+,,
copy test.txt+,, test1.txt
kopiert test.txt nach test1.txt. Das heisst aber die ,, sind Platzhalter fuer Quelle2 und nicht fuer Ziel ?
copy test.txt ,, ist identisch mit copy test.txt
Die Datei kann nicht in sich selbst kopiert werden.
0 Datei(en) kopiert.
Wenn man nun eine 0 Byte Datei tnull.txt hat und
copy test.txt+tnull.txt test.txt
macht, wirkt es auch wie
copy test.txt+
bzw.
copy test.txt+,,
(das /B denke man sich immer)
Also, wofuer steht nun das ,, ?!?
-
- DOS-Übermensch
- Beiträge: 1035
- Registriert: Mi 31. Jan 2007, 19:04
- Wohnort: Halle
- Kontaktdaten:
ok ich hatte auf Arbeit nur Win2K zum testen da und die haben da wirklich auch bei copy noch was geaendert. (Obwohl die Hilfe zu Copy eine Kopie der Hilfe von DOS 6.22 ist)
Unter DOS 6.22 ist es sogar so, dass
copy test.txt+,, und copy/B test.txt+,, die Datei loescht mit 0 Files Copied.
Wirklich nur copy test.txt/B+,, setzt die Zeit. Wobei es laut der Hilfebeschreibung in dem Fall egal sein muesste ob das /B vor oder hinter dem Namen steht.
Unter DOS 6.22 ist es sogar so, dass
copy test.txt+,, und copy/B test.txt+,, die Datei loescht mit 0 Files Copied.
Wirklich nur copy test.txt/B+,, setzt die Zeit. Wobei es laut der Hilfebeschreibung in dem Fall egal sein muesste ob das /B vor oder hinter dem Namen steht.