2017-11-30 3 views
0

십여 개의 스레드를 읽었으나 여전히이 작업을 해결할 수 없습니다 (나에게 부끄러움). 내 배치 파일공백이 포함 된 명시 적으로 주어진 폴더를 반복합니다.

for %%x in ( 
    "%PROGRAMFILES(X86)%" 
    "%PROGRAMFILES%" 
    ) do (
     echo x=%%x 
     ) 
    ) 

는 출력

x=C:\Program Files (x86) 
x=C:\Program Files 

로되어 있지만,

x="C:\Program Files (x86)" 
x="C:\Program Files" 

나는 그것이 않는 이유를 이해하지만, 그에 따라 대한 루프를 수정 드릴 수 없습니다 출력되었다.

for %%x in ( 
    %PROGRAMFILES(X86)% 
    %PROGRAMFILES% 
    ... 
    ) do (
     for %%y in (...) do (
      if exist %%x\%%y (
       echo yep 
      ) 
     ) 
    ) 

답변

1
echo x=%%~x 

~ 올바른 맥락에서 (따옴표를 둘러싸는 제거합니다

내 의도는 ("..."더보기 폴더 이름있는 자리) 중첩 루프가 명시 적으로 주어진 폴더를 통해 반복하는 것입니다) (R 행의 두 번째 부분

그래서

 if exist "%%~x\%%~y" (

필요 타겟 파일 이름에 공백이 있으면 e- 따옴표를 삽입하십시오)