CMD Robocopy Error?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Du hast eine sich selbstaufrufende Batch gebaut.

Deine Batch heißt "robocopy.bat" . Wenn bei einem Befehlsaufruf kein expliziter Pfad oder/und eine Extension angegeben wird, such das System im aktuellen Ordner nach einer ausführbaren Datei mit dem angegebenen Namen und wird bei Dir fündig... das erste Beste ist robocopy.bat , die dürfte wohl gemeint sein.

Deine Batch wird ausgeführt und darin wir robocopy aufgerufen. ...das ganze Spiel wird endlos fortgesetzt....😵🤪

Entweder du rufst in deiner Batch explizit :

c:\Windows\System32\Robocopy.exe  usw.

oder

Robocopy.exe usw.

die beste Lösung ist jedoch darauf zu achten , das eine Batch nie den gleichen Namen hat. wie ein darin aufgerufenes Programm oder Systemprogramm !

Nenne deine Batch meinetwegen "MyRobocopy.cmd" oder "Bkup_MeineAblage.cmd"

in dieser Beziehung auch noch der Hinweis: die richitge Endung für Batch ist unter Windows .cmd die Extension! .bat ist ein Relikt aus Doszeiten, welches von Leuten am leben gehalten wird, welche keine Ahnung haben. .bat versetzt den Batchinterpreter in einen Dos-Emulationsmodus , welcher uralten Code in angepasster weise ausführt!

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren
white47583 
Fragesteller
 18.11.2022, 06:05

Vielen Dank für deine hilfreiche und sehr ausführliche Antwort. 👍

1

du darfst nicht mehrere befehle in eine Zeile schreiben. Ich benutze Linux aber bei Windows müsste das auch so sein, dass nur ein Befehl pro Zeile erlaubt ist. Das ist eigenlich immer so (soweit ich weiß)

white47583 
Fragesteller
 17.11.2022, 19:58

Es ist doch nur ein Befehl pro Zeile zu sehen oder was meinst du ?

0
Erzesel  17.11.2022, 21:35

selbst aufrufendes Script...

Da Skripte in Bash in der Regel mit Extension aufgerufen werden gibt's normalerweise keine Verwechslungen allerdings kann man auch in bash buildin Kommandos überschreiben. https://www.tutorialkart.com/bash-shell-scripting/bash-override-commands/

Das läuft bei Windows-Batch über die Hierarchie, in welcher Befehle ohne Extension/Pfad ausgeführt werden.

0