2016-10-22 1 views
0

FOR 명령이 예상대로 작동하지 않는 이유를 파악하려고합니다.FOR 명령이 작동하지 않습니다 (재귀 키없이 사용하는 경우에만 해당)

Test 
| 
|------ foo.txt 
|------ bar.txt 
| 
|------ Exclude 
     (here placed files that should not be processed) 
      | 
      |------ aaa.txt 
      |------ bbb.txt 

작업은 foo.txt의 및 bar.txt라는를 처리하고 또한 aaa.txt 및 bbb.txt를 처리하는 방지하는 것입니다 : 여기

내 파일 및 폴더의 구조입니다.

다음은 내가 시도한 3 가지 방법입니다.

첫 번째 방법. 그것의 작품이지만, /r (재귀) 키가 필요하기 때문에, 그것은 내 요구를 만족하지 않습니다.

for /r "C:\Test" %f in (*.txt) do type %f 

두 번째 방법입니다. 그게 내가하려는 일이야. 작동하지 않습니다. Insted, 나에게 오류 : "C : \ Test"가 이번에는 예기치 않게 발생했습니다.

for "C:\Test" %f in (*.txt) do type %f 

세 번째 방법입니다. 그것은 작동하며 현재 해결 방법으로 사용하고 있지만 두 번째 방법이 실패하는 이유는 아직도 궁금합니다.

cd "C:\Test" 
for %f in (*.txt) do type %f 
+0

원래의 현재 디렉토리를 유지 제 3 방법의 또 다른 제제는'하고, pushd "C : \ 테스트"/'...'/'popd'에서 % f를위한' –

답변

2

/r 스위치없이, 기본 for 명령에 대한 구문은

for %var in (set) do ... 

, 당신은 당신이 그것을하고있는 폴더를 포함 할 수 없습니다, 그것은 지적하는 for /? 도움을 읽기 . 당신이 c:\Test 내부의 파일을 처리하기 위해 필요로하는

는 다음 세트는

for %a in ("c:\Test\*.txt") do type "%a" 

참고 그래서 해당 폴더 안에있는 파일입니다 : 기억이 배치 파일 내부의 for 교체 매개 변수의 퍼센트 기호

for %%a in ("c:\Test\*.txt") do type "%%a" 

을 배가 할 필요가
관련 문제