2014-05-15 5 views
0

"$ (TargetDir)"에서 "% ProgramData % \ A \ B \"위치로 구성 파일을 처음으로 응용 프로그램을 만들 때 한 번만 복사하려고합니다. 이 파일을 원하는 위치에 복사하면 다시 복사 할 필요가 없습니다. 나는 VS 2010에서 다음과 같은 게시물 빌드 이벤트를 작성했습니다. 처음 성공적으로 실행되고 원하는 위치에 원하는 파일을 복사하지만 응용 프로그램이 두 번째 빌드되면 "다음 명령과 같은 오류가 발생합니다 ... 오류가 발생했습니다 코드 2 ". 나는 봤지만 문제의 정확한 원인을 알 수 없었다. 이 스크립트에서 원하는 디렉토리가 이미 존재하면 XCOPY 문이 실행되지 않을 것으로 예상됩니다. 내가 틀린 곳을 지적 해주십시오.XCOPY 명령을 처음 실행하면 확인이 실행됩니다. 그것은 두 번째 실패

if exist "%ProgramData%\A\B\" == false 
xcopy "$(TargetDir)C.exe.config" "%ProgramData%\A\B\" /F 
+0

확장 된 경로를 사용하여 명령을 실행하면 전체 오류가 표시됩니다. – CodeCaster

+0

당신이/xcopy 그런 식으로 분할 할 수 없다고 생각합니다. 그렇지 않으면 같은 줄에 두십시오. "echo foobar"로 테스트하면 빌드 창에 출력됩니다. –

+0

@PasiSavolainen : 시도한 paranthesis 및 같은 줄에 그들을 유지하려고. 운이 없지만 오류 코드가 9009로 바뀌 었습니다. – himanshu

답변

1

XCOPY는 이미 존재하지 않는 경우 디렉토리를 생성합니다.

두 번째 Windows는 XCOPY 명령에 대한 덮어 쓰기 확인을 요청하기 위해 처음으로 파일을 복사했습니다. Visual Studio에서는이를 허용하지 않으므로 코드 2에서 종료되었습니다.

프롬프트를 억제하는/y 매개 변수를 추가하면 작동 할 수 있습니다.

+0

나는 그것을 다시 복사하고 싶지 않습니다. – himanshu

+0

파일이 새 파일이거나/s/d가 변경된 경우에만 복사 할 수 있습니다. 명령 프롬프트를 통해 직접 호출에 대한 수퍼 유저 대화를 게시합니다. http://superuser.com/questions/308277/is-there-anyway-to-xcopy-just-changed-or-new-files – kevchadders

+0

XCOPY 새 파일 또는 변경된 파일로 인해 복사 된 파일이 프로그램. 응용 프로그램은 소스 파일을 수정하지 않습니다. 따라서 소스와 대상은 항상 다릅니다. "XCOPY new or changed"명령을 실행하면 복사 된 파일이 새 파일로 바뀌며 모든 수정 사항이 손실됩니다. – himanshu