Batchdatei XCOPY kann vorhandenes Verzeichnis nicht finden

Batchdatei XCOPY kann vorhandenes Verzeichnis nicht finden

Ich schreibe eine kleine Batchdatei, um mein C#-Projekt auf ein anderes Laufwerk zu kopieren. Ich verwende sie, XCOPYum einen ganzen Ordner zu kopieren (wir haben noch einige XP-Rechner, also robocopyist das keine Option). Wenn ich die Batchdatei jedoch ausführe, wird mir angezeigt, dass die angegebene DATEI nicht gefunden werden kann (warum nach einer Datei und nicht nach einem Ordner gesucht wird, weiß ich nicht).

Hier ist meine Ordnerstruktur. Ich möchte folderin den program\dstOrdner auf dem OLaufwerk kopieren.

src
-folder
-batchFile.bat

O
-program
--dst    

Meine batchFile.bat enthält die folgende Zeile

XCOPY  ".\folder" "O:\program\dst" /E

Wenn ich das ausführe, heißt es:

File Not Found - folder

obwohl es definitiv existiert (als Ordner, nicht als Datei).

Antwort1

Wie aus anderen Antworten hervorgeht, .\folderbeginnt die Verwendung im aktuellen Verzeichnis, während Sie den Speicherort der Batchdatei benötigen:

XCOPY  "%~dp0folder" "O:\program\dst" /E

Sie könnten cdzuerst zum Ordner gehen, aber das ist meiner Meinung nach eleganter.

Antwort2

Ich habe das ausprobiert und es funktioniert bei mir. Ich vermute, Sie haben eine Verknüpfung zur Batchdatei erstellt und das Startverzeichnis ist nicht korrekt. Wenn das der Fall ist, sollte das Hinzufügen eines cdBefehls zum Anfang der Batchdatei, um das Verzeichnis zu ändern, srcdas Problem beheben. Alternativ können Sie einen absoluten Pfad folderanstelle eines relativen Pfads verwenden:

cd "C:\Whatever\src"
XCOPY ".\folder" "O:\program\dst" /E

oder

XCOPY "C:\Whatever\src\folder" "O:\program\dst" /E

Antwort3

Fügen Sie in Ihrem Skript den folgenden Befehl ganz am Anfang Ihrer CMD-Datei ein:

echo "%cd%"

Beobachten Sie dann, was dieser Befehl erzeugt.

Wenn der vollständige Pfad Ihres „Ordner“-Verzeichnisses „C:\ABC\Ordner“ lautet, sollte der Befehl „echo „%cd%“ die Ausgabe „C:\ABC“ liefern. Wenn Sie jedoch etwas anderes sehen, löst Ihr XCOPY-Befehl den Fehler „Datei nicht gefunden“ aus. Das ist normal, da XCOPY nicht feststellen kann, ob es sich bei „Ordner“ um ein Verzeichnis oder eine Datei handelt, und davon ausgeht, dass es sich standardmäßig um eine Datei handelt.

verwandte Informationen