2012-06-06 6 views
2

PowerShell을 통해서만 실행할 수있는 프레임 워크가 있지만 배치 파일 명령을 실행해야합니다. 내가 PowerShell은 스크립트를 실행하기 위해 노력하고있어, 뭔가 같은 : blah에 대한배치 파일 : 집합을 사용하여 한 줄에 여러 명령 사용

cmd /c blah 

내가 같은 것을하고 싶지 : 처음 작동하지 않습니다

set myPath = c:\theDir && if not exist %myPath% mkdir %myPath% 

이를 나는 set 명령으로 실행 두 번째 줄까지 영향을 미치지 않는 것 같습니다. 어떤 아이디어?

답변

0
for %d in (some\path and\maybe\another\one) do @if not exist "%d" md "%d" 
2

라인이 그것이 실행입니다하지 않을 경우,을 구문 분석 할 때 cmd 변수를 평가하기 때문이다. 그렇지 않으면 당신은 끝에 공백으로 변수 이름을 만드는, 또한 당신이 set= 주위에 공백이 안된다는 것을

cmd /c /v:on "set MyPath=C:\theDir&& if not exist "!myPath!" mkdir "!myPath!" 

참고 : 후자의 행동을 얻으려면 지연 확장을 사용해야합니다 (즉, 어쨌든 당신의 접근 방식은 결코 효과가 없을 것입니다).

+0

, 난 당신이 '&'를 사용하여 한 줄에 당신의 대답에 두 줄을 연결하는 의미 생각을 당신은하지 않았다 ? – djangofan

0

여러 명령을 실행하기 전에 지연 확장을 정의 할 수도 있습니다. 그 방법은 당신이 새로운 CMD 인스턴스를 열 필요가 없습니다 것입니다 :

질문에 따라
Setlocal EnableDelayedExpansion 
set say=Hello && echo !say! && echo Done! 
관련 문제