문제

.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

출력 리디렉션 또는 명령 배관을 사용해야하는 경우 Escape Char (^):

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 및 UP에서 사용할 수 있습니다.

가장 쉬운 방법 :

명령 줄에서 사용 :

for %f in (*.*) do echo %f

배치 파일에서 ( % % 증가) :

for %%f in (*.*) do echo %%f

첫 번째 매개 변수로 지정된 폴더가있는 배치 파일에서

for %%f in (%1\*.*) do echo %%f

사용

for /r path %%var in (*.*) do some_command %%var

와 함께:

  • 경로는 시작 경로입니다.
  • %% var는 일부 식별자입니다.
  • *.* FILEMASK 또는 변수의 내용.
  • some_command는 경로로 실행하고 Var가 매개 변수로 연결되는 명령입니다.

또 다른 방법:

for %f in (*.mp4) do call ffmpeg -i "%~f" -vcodec copy -acodec copy "%~nf.avi"

디렉토리의 모든 파일을 숨겨진/시스템/readonly로 표시하는 악성 코드가있었습니다. 다른 사람 이이 상황에서 자신을 찾으면 디렉토리로 CD를 사용하여 실행합니다. for /f "delims=|" %f in ('forfiles') do attrib -s -h -r %f.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top