.bat 또는 .cmd 파일을 사용하여 디렉토리의 각 파일을 어떻게 반복합니까?
간단히하기 위해 파일 이름이나 파일 경로를 에코하는 답변을 제공하십시오.
답변
명령 줄 사용법 :
for /f %f in ('dir /b c:\') do echo %f
배치 파일 사용법 :
for /f %%f in ('dir /b c:\') do echo %%f
업데이트 : 디렉토리에 이름에 공백이있는 파일이 포함 된 경우 for /f
명령이 사용 하는 분리 문자를 변경해야합니다 . 예를 들어 파이프 문자를 사용할 수 있습니다.
for /f "delims=|" %%f in ('dir /b c:\') do echo %%f
업데이트 2 : (원래 답변 후 1 년 반 빠른 :-)) 디렉토리 이름 자체에 이름이 공백이 있으면 다음 usebackq
옵션을 사용할 수 있습니다 for
.
for /f "usebackq delims=|" %%f in (`dir /b "c:\program files"`) do echo %%f
출력 리디렉션 또는 명령 파이프를 사용해야하는 경우 이스케이프 문자 ( ^
)를 사용하십시오 .
for /f "usebackq delims=|" %%f in (`dir /b "c:\program files" ^| findstr /i microsoft`) do echo %%f
답변
또는 다음을 사용하십시오.
forfiles /s /m *.png /c "cmd /c echo @path"
forfiles 명령은 Windows Vista 이상에서 사용할 수 있습니다.
답변
가장 쉬운 방법 :
명령 행에서 다음을 사용하십시오.
for %f in (*.*) do echo %f
배치 파일에서 (% 퍼센트 부호를 두 배로) :
for %%f in (*.*) do echo %%f
폴더가 1 번째 매개 변수로 지정된 배치 파일에서 :
for %%f in (%1\*.*) do echo %%f
답변
사용하다
for /r path %%var in (*.*) do some_command %%var
와:
- 경로는 시작 경로입니다.
- %% var는 일부 식별자입니다.
- *. *는 파일 마스크이거나 변수의 내용입니다.
- some_command는 경로를 사용하여 실행하는 명령이며 var는 매개 변수로 연결됩니다.
답변
또 다른 방법:
for %f in (*.mp4) do call ffmpeg -i "%~f" -vcodec copy -acodec copy "%~nf.avi"
답변
디렉토리의 모든 파일을 숨김 / 시스템 / 읽기 전용으로 표시 한 맬웨어가있었습니다. 다른 사람이이 상황에서 자신을 발견하면 디렉토리로 들어간 다음를 실행하십시오 for /f "delims=|" %f in ('forfiles') do attrib -s -h -r %f
.