Der Befehl ist entweder falsch geschrieben oder konnte nicht gefunden werden

Hallo, ich verzweifel gerade an einem Syncronisations/Backup-Skript, der sonst immer funktioniert hat. Hier ein Auszug davon:

@echo off & setlocal enabledelayedexpansion setlocal SET quelle=C:\Users\creat\Dokumente SET ziel=Z:\Backups\CreatorX\Documents Set "file=!quelle!\#auszulassene-Ordner.txt" REM Sensible Ordner zum verschlüsseln werden festgelegt... For /f "delims=" %%i IN (!file!) DO ( REM ...und in die Containerdatei kopiert (falls sie existiert) if exist "!quelle!\%%i" ( echo !quelle!\%%i ROBOCOPY "%quelle%\%%i" "%ziel%\%%i" /COPY:DAT /MIR /R:1 /W:1000 pause if errorlevel 1 SET container_copy=1 REM wenn etwas kopiert wurde ) else ( REM Falls der Quellordner nicht existiert wird auch der Zielordner gelöscht rmdir /s /q "%ziel%\%%i" Echo. Echo ------------------------------------------------------------------------------- Echo Quellordner !quelle!\%%i nicht vorhanden - Zielordner wurde gelöscht Echo ------------------------------------------------------------------------------- Echo. ) ) pause

Es wird aus einer Datei augelesen, welche Ordner via Robocopy kopiert werden sollen. Soweit alles gut, aber bei der Zeile mit Robocopy steht dann da:

Der Befehl "ROBOCOPY" ist entweder falsch geschrieben oder konnte nicht gefunden werden.

Was mache ich falsch?

Dann wird Robocopy auch nicht gefunden... Oh man, ja Windows ist frisch installiert, aber ich ging davon aus dass zumindest das fester Bestandteil sei und nicht noch extra installiert werden muss.

robocopy.exe sollte in c:\windows\system32 liegen. Wenn's da nicht ist hat's wohl jemand gelöscht/verschoben.

E: oder irgendwas stimmt mit der Path-Variable nicht

Der Befehl ist entweder falsch geschrieben oder konnte nicht gefunden werden

Die Fehlermeldung ist doch eindeutig.

Internet: FTTH 400/200 von ENNI, Unifi Dream Machine Pro, diverse APs
PC: MacBook Air Silicon M1 (Late 2020)
Home Server: Gigabyte C246-WU4, i3-8300, 32GB ECC RAM, Fractal Design Define R6 USB-C Blackout

Aber die robocopy.exe ist bei mir in system32 vorhanden.

Joar, wenn ich in cmd in den System32 Ordner wechsel, kann ich robocpy ausfürhen, ansonsten geht es nicht.

ich vermute, dass durch irgendwas die Path-Variable gelöscht/genullt wurde. Mal Kommandozeile aufmachen und set eingeben und die Ausgabe von path= mal posten.

Als Workaround könnest du auch statt "robocopy ..." "c:\windows\system32\robocopy ..." im Script ersetzen

c:\>set Path=C:\Program Files\SDelete;c:\windows;c:\windows\system32\wbem;c:\windows\system32\windowspowershell\v1.0\;c:\windows\system32\openssh\;c:\program files\nvidia corporation\nvidia nvdlisr;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Users\creat\AppData\Local\Microsoft

Zuletzt bearbeitet: 28. Juli 2020

c:\>set Path=C:\Program Files\SDelete;c:\windows;c:\windows\system32\wbem;c:\windows\system32\windowspowershell\v1.0\;c:\windows\system32\openssh\;c:\program files\nvidia corporation\nvidia nvdlisr;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Users\creat\AppData\Local\Microsoft\WindowsApps;

Richtig vermutet, "c:\windows\system32" steht nicht (mehr) im path drin.

Wie man das wieder hinzufügt, findest du bestimmt selber raus. gehe jetzt ins Bett

Der Befehl ist entweder falsch geschrieben oder konnte nicht gefunden werden

Ahhhh das war es. Könnte sogar sein, dass ich es gelöscht hatte, als ich da einen eigenen Eintrag hinzugefügt habe, oh man.
Vielen Dank für die ganzen schnellen Antworten!

Der Befehl ist entweder falsch geschrieben oder konnte nicht gefunden werden

Soviel zur Aussage "Windows ist frisch installiert" :-D

Ja stimmt schon. Hatte mir bereits ein wenig Software installiert, dachte das wäre nicht so relevant ^^

Der Befehl ist entweder falsch geschrieben oder konnte nicht gefunden werden

Software installieren löscht die Standard Path Einträge auch nicht. Da muss Du schon selbst gebastelt haben. Ohne dein Eintrag auf system32 wird vieles nicht funktionieren. Der ist essentiell.

Ja hab ich wahrscheinlich auch, als ich dort einen Pfad zu SDelete hinzugefügt habe (wobei es wahrscheinlich klüger gewesen wäre, SDelete gleich in System32 zu kopieren, was ich inzwischen gemacht habe). War also wahrscheinlich mein eigener Fehler. Ich hatte nur nicht mehr daran gedacht im Moment.