내 C# 프로젝트를 다른 드라이브에 복사하기 위해 작은 배치 파일을 작성 중입니다. 전체 폴더를 복사하는 데 사용하고 있습니다 XCOPY
(아직 일부 XP 시스템이 있으므로 robocopy
옵션이 아닙니다). 그러나 배치 파일을 실행하면 지정된 FILE을 찾을 수 없다는 메시지가 나타납니다(왜 폴더가 아닌 파일을 찾는지 알 수 없습니다).
내 폴더 구조는 다음과 같습니다. 드라이브 의 폴더 folder
에 복사하고 싶습니다 .program\dst
O
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는 "폴더"가 디렉터리인지 파일인지 확인할 수 없고 이것이 파일의 기본값이라고 가정하기 때문에 이는 정상적인 현상입니다.