Die ,, bei copy

Konfiguration, Anwendungen, Treiber und TSRs unter DOS
Antworten
elianda
DOS-Übermensch
Beiträge: 1150
Registriert: Mi 31. Jan 2007, 19:04
Wohnort: Halle
Kontaktdaten:

Die ,, bei copy

Beitrag von elianda »

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?
bttr

Beitrag von bttr »

Was es tut duerfte ja klar sein...
Sicher? 8-)
...jedoch habe ich keine Infos zu dem genauen Verhalten mit ,, gefunden.
Das sorgt dafür, daß Datum und Uhrzeit einer Datei aktualisiert werden. Google mal nach muf17.zip und batfaq23.zip.
elianda
DOS-Übermensch
Beiträge: 1150
Registriert: Mi 31. Jan 2007, 19:04
Wohnort: Halle
Kontaktdaten:

Beitrag von elianda »

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):
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.
Wenn er nach dem Dateinamen steht:
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.
Anm: Ich glaube da ist ein Tippfehler in der Hilfe und es muss heissen: ...,bis copy auf den Schlater /a trifft...

Zu obigen Konstrukt gilt weiterhin:
Die Kommas zeigen an, dass der Parameter Ziel nicht angegeben wird
Das heisst also dass Quelle1 + nun muesste Quelle2 folgen und Ziel ohne Plus und da wird der Ersatz ,, eingefuegt.

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 ,, ?!?
bttr

Beitrag von bttr »

copy test.txt+
scheint das gleiche zu tun wie copy test.txt+,,
Nö. Da kommt mit MS-DOS 6.22 "Datei kann nicht auf sich selbst kopiert werden". Du hast also Windows 2000 verwendet. Wenn du weiter mit Windows spielen willst, dann gehe bitte in ein anderes Forum. :evil:
elianda
DOS-Übermensch
Beiträge: 1150
Registriert: Mi 31. Jan 2007, 19:04
Wohnort: Halle
Kontaktdaten:

Beitrag von elianda »

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.
bttr

Beitrag von bttr »

Ich weiß nicht, was du da für ein MS-DOS 6.22 hast, aber meine originale deutsche Version kommt mit "copy /b test.com+,," sehr gut zurecht.
elianda
DOS-Übermensch
Beiträge: 1150
Registriert: Mi 31. Jan 2007, 19:04
Wohnort: Halle
Kontaktdaten:

Beitrag von elianda »

englisches MS-DOS 6.22
Antworten