배치 파일 XCOPY가 기존 디렉터리를 찾을 수 없습니다.

배치 파일 XCOPY가 기존 디렉터리를 찾을 수 없습니다.

내 C# 프로젝트를 다른 드라이브에 복사하기 위해 작은 배치 파일을 작성 중입니다. 전체 폴더를 복사하는 데 사용하고 있습니다 XCOPY(아직 일부 XP 시스템이 있으므로 robocopy옵션이 아닙니다). 그러나 배치 파일을 실행하면 지정된 FILE을 찾을 수 없다는 메시지가 나타납니다(왜 폴더가 아닌 파일을 찾는지 알 수 없습니다).

내 폴더 구조는 다음과 같습니다. 드라이브 의 폴더 folder에 복사하고 싶습니다 .program\dstO

src
-folder
-batchFile.bat

O
-program
--dst    

내 배치File.bat에는 다음 줄이 포함되어 있습니다.

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

이것을 실행하면 다음과 같이 표시됩니다.

File Not Found - folder

비록 그것이 가장 확실하게 존재하더라도(파일이 아닌 폴더로).

답변1

다른 답변에서 알 수 있듯이 .\folder배치 파일의 위치를 ​​원하는 동안 사용은 현재 디렉토리에서 시작됩니다.

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

cd먼저 폴더로 이동할 수 있지만 이것이 더 우아한 IMO입니다.

답변2

나는 이것을 시도했고 그것은 나에게 효과적이었습니다. 배치 파일에 대한 바로가기를 만들었고 시작 디렉터리가 올바르지 않은 것 같습니다. 그렇다면 cd디렉터리를 변경할 배치 파일의 시작 부분에 명령을 추가하여 src문제를 해결하거나 folder상대 경로 대신 절대 경로를 사용해야 합니다.

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

또는

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

답변3

스크립트에서 CMD 파일의 시작 부분에 아래 명령을 입력하세요.

에코 "%cd%"

그런 다음 이 명령이 생성하는 내용을 관찰합니다.

"폴더" 디렉터리의 전체 경로가 "C:\ABC\folder"인 경우 echo "%cd%" 명령은 "C:\ABC" 출력을 생성해야 합니다. 그러나 이와 다른 내용이 표시되면 XCOPY 명령에서 파일을 찾을 수 없음 오류가 발생합니다. XCOPY는 "폴더"가 디렉터리인지 파일인지 확인할 수 없고 이것이 파일의 기본값이라고 가정하기 때문에 이는 정상적인 현상입니다.

관련 정보