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
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
Die Fehlermeldung ist doch eindeutig. Internet: FTTH 400/200 von ENNI, Unifi Dream Machine Pro, diverse APs
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; Wie man das wieder hinzufügt, findest du bestimmt selber raus. gehe jetzt ins Bett
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.
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 ^^
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. |