2012-02-14 3 views
1

아래의 행을 cmd 창에 복사/붙여 넣을 때 문제없이 실행됩니다. 내가 DoStuff.bat로 저장할 때박쥐 스크립트는 첫 번째 줄만 실행합니까?

"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat" 
msbuild proj\projsln /p:Configuration=Debug 
proj\proj\bin\Debug\proj.exe my args 

그러나 나는 그 때, 아무것도 (실행 VCVARS32.BAT의 텍스트 인) 아래의 메시지가 표시됩니다. 그것은 내 프로젝트를 빌드하지 않으며 분명히 새로 빌드 된 실행 파일을 실행하지 않습니다.

왜 3 가지 명령을 모두 실행해야합니까?

>"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat" 
Setting environment for using Microsoft Visual Studio 2010 x86 tools. 
+1

[이 Windows 배치 파일의 첫 줄만 실행하지만 세 줄 모두 명령 셸에서 실행되는 이유는 무엇입니까?] (http://stackoverflow.com/questions/4036754/why-does-only-the -first-line-of-this-windows-batch-file-execute-but-all-three-li) – user

답변

9

을 사용하여 다른 배치 파일을 호출하십시오.

+0

네, 그렇게했습니다. 감사합니다. (받아 들일 때까지 기다리고 있습니다.) –

+1

혼란 스러울 때,이 경우 스크립트가 다른 스크립트를 호출하기 때문에 이것이 필요한 이유가 있습니다. 'call' 명령은 두 번째 스크립트가 완료되면 원래 스크립트를 계속 실행해야한다는 것을 Windows에 알려주기 위해 필요합니다 :'부모 배치 프로그램을 중단하지 않고 다른 프로그램에서 한 프로그램을 호출 ' – lightswitch05

0

글쎄, 계속되지 않는 이유가 있어야합니다. 명령이 입력을 기다리고있는 것입니까? 그게 전부 내가 생각할 수있는. 배치 파일의 출력을 로그로 재지향하여 무슨 일이 일어나는지보십시오.

또는 배치 파일을 별도의 배치 파일로 분할하고 배치 파일을 호출하기 전에 CALL을 입력하십시오.

+0

Ooops! @vulkanino가 이미 해결책을 제시했음을 알 수 있습니다. – Frankline

관련 문제