2010-05-04 4 views
2

정기적으로 수행하는 작업을위한 작은 배치 파일을 작성하려고합니다. 전에 for을 사용한 적이 없으며 처음 시도하고 있습니다. 이것은 내가 지금까지 함께 온 것입니다 : 배치 파일 내에 루프를 작성하는 구문

for /f %i in ('ct find . -ver lbtype(%1) -print') do ct lsvt -g %i 

는 기본적으로 주어진 cleracase 레이블 모든 파일을 찾은 다음 해당 파일의 버전 트리를 표시하려고합니다. 문제는 %1에 있습니다. 그러나 이것을 실행하려고 할 때 -print)이 예상되지 않았거나 언젠가는 명령 프롬프트에서이 명령을 인쇄한다는 오류가 발생합니다. 나는 그것이 여러 paranthesis 사이에 혼란 스러울 것 같아요. 어떤 단서를 어떻게 해결할 수 있습니까? 당신이 for에서 실행하고있는 명령을 인용

답변

3

시도 : 그 있었다 유사한 명령했다

for /f %i in ('"ct find . -ver lbtype(%1) -print"') do ct lsvt -g %i 

괄호로 인수했다. (당신이 아마 알고있는 한) 또한

, 당신은 당신이 명령 줄에서 그것을 실행하는 대신 배치 파일에 명령을 넣을 때 for 변수에 대한 '%' 문자 - 최대 두 번해야합니다 :

for /f %%i in ('"ct find . -ver lbtype(%1) -print"') do ct lsvt -g %%i 
+1

공백이있는 파일 pathes가 포함될 수 있으므로 적절하게 '%% i'를 인용하고 싶을 수도 있습니다. '... do ct lsvt -g "%% i"' –

+0

감사합니다. 완벽하게 작동합니다. – Naveen

+0

큰 따옴표는 아무 의미가 없어야합니다. – Joey