2011-01-17 4 views
0

디렉토리의 최신 파일을 식별하는 배치 스크립트를 찾고있었습니다. 모든 예제에서 FOR/F를 사용합니다. FOR에 대한 도움말 문서를 읽을 때/F가 열리고 각 파일을 읽고 처리한다고 나와 있습니다.왜 텍스트가 아닌 파일을 처리 할 때도/F는 일반적으로 FOR 루프와 함께 사용됩니까?

왜이 경우/F가 사용됩니까? 나는 큰 바이너리 파일과 스크립트를 사용하지 않았기 때문에 각 파일이 실제로 열리고 있다고 생각하지 않는다.

/F를 사용하지 않고 FOR를 사용하여 동일한 작업을 시도했지만 didn 운이 없네. 그 이유가 있을까요? 예를 들어

:

FOR %%I IN ('dir "*.AVI" /B /O:D') DO set newestAvi=%%I 

가 작동하지 않습니다. 어떤 이유로 든 newestAvi는 끝에 "/ O : D '"와 같습니다.

그때

FOR /F "delims=|" %%I IN ('dir "*.AVI" /B /O:D') DO set newestAvi=%%I 

가지 작업을 사용하는 경우.

감사합니다,

데이브

답변

2

나는 도움말 파일의 관련 비트는 명령이

dir "*.AVI" /B /O:D 
의 출력을 소요/F에 따라서

Finally, you can use the FOR /F command to parse the output of a 
command. You do this by making the filenameset between the 
parenthesis a back quoted string. It will be treated as a command 
line, which is passed to a child CMD.EXE and the output is captured 
into memory and parsed as if it was a file. So the following 
example: 

, 생각

각 행을 com으로 구문 분석하십시오. 구문은

newestAvi=%%I 

현재 디렉토리에있는 각 파일에 대해

newestAvi=FileName.AVI 

가되는. 마지막으로 할당 된 값은 for 명령 실행의 끝 부분에 남아있는 값입니다.

관련 문제