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

CreatorX

Lt. Junior Grade
Dabei seit
Mai 2011
Beiträge
262
Hallo, ich verzweifel gerade an einem Syncronisations/Backup-Skript, der sonst immer funktioniert hat.
Hier ein Auszug davon:
Code:
@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:
Code:
Der Befehl "ROBOCOPY" ist entweder falsch geschrieben oder konnte nicht gefunden werden.
Was mache ich falsch?
 
Okay, und wenn du einfach eine cmd aufmachst und robocopy eintippst?
 
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
 
Die Fehlermeldung ist doch eindeutig.
 
  • Gefällt mir
Reaktionen: BeBur
Aber die robocopy.exe ist bei mir in system32 vorhanden.
 
Zitat von CreatorX:
aber ich ging davon aus dass zumindest das fester Bestandteil sei und nicht noch extra installiert werden muss.
Ist es auch in jeder Version von Windows seit Windows NT, da ist also irgendwas krumm bei deinem System...
Ergänzung ()

Zitat von CreatorX:
Aber die robocopy.exe ist bei mir in system32 vorhanden.
Eventuell ein Problem mit den Benutzerprivilegien?

Versuch das mal von Hand auszuführen und/oder in der cmd in den system32 Pfad zu wechseln und dort robocopy.exe direkt aufzurufen
 
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
 
  • Gefällt mir
Reaktionen: DubZ, Rickmer und cruse
Code:
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:
Zitat von CreatorX:
Code:
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 :)
 
  • Gefällt mir
Reaktionen: Art Vandelay, CreatorX und cruse
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!
 
Ja stimmt schon. Hatte mir bereits ein wenig Software installiert, dachte das wäre nicht so relevant ^^
 
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.
 
Zurück
Top