태그 보관물: for-loop

for-loop

‘for’루프를 사용하여 디렉토리의 모든 파일을 반복하십시오. 파일을 어떻게

for루프를 사용하여 디렉토리의 각 파일을 어떻게 반복 할 수 있습니까?

특정 항목이 디렉토리인지 아니면 파일인지를 어떻게 알 수 있습니까?



답변

현재 디렉토리에있는 모든 파일과 파일 만 나열됩니다.

for /r %i in (*) do echo %i

또한 배치 파일에서 해당 명령을 실행하는 경우 % 부호를 두 배로 늘려야합니다.

for /r %%i in (*) do echo %%i

(감사합니다 @agnul)


답변

반복 …

  • … 현재 디렉토리의 파일 : for %f in (.\*) do @echo %f
  • … 현재 디렉토리의 하위 디렉토리 : for /D %s in (.\*) do @echo %s
  • … 현재 및 모든 하위 디렉토리의 파일 : for /R %f in (.\*) do @echo %f
  • … 현재 및 모든 하위 디렉토리의 하위 디렉토리 : for /R /D %s in (.\*) do @echo %s

불행히도 파일과 하위 디렉토리를 동시에 반복하는 방법을 찾지 못했습니다.

더 많은 기능을 위해 bash와 함께 cygwin 을 사용하십시오 .

이 외에도 MS Windows의 기본 제공 도움말은 cmd의 명령 줄 구문에 대한 설명을 제공하는 훌륭한 리소스입니다.

또한 여기를보십시오 : http://technet.microsoft.com/en-us/library/bb490890.aspx


답변

각 파일을 반복하려면 for 루프가 작동합니다.

for %%f in (directory\path\*) do ( something_here )

제 경우에는 파일 내용, 이름 등도 원했습니다.

이로 인해 몇 가지 문제가 발생하여 유스 케이스가 도움이 될 것이라고 생각했습니다. 다음은 디렉토리의 각 ‘.txt’파일에서 정보를 읽고 해당 파일로 무언가를 수행 할 수있는 루프입니다 (예 : setx).

@ECHO OFF
setlocal enabledelayedexpansion
for %%f in (directory\path\*.txt) do (
  set /p val=<%%f
  echo "fullname: %%f"
  echo "name: %%~nf"
  echo "contents: !val!"
)

* 제한 : val <= %% f는 파일의 첫 번째 줄만 가져옵니다.


답변

FOR명령 줄에서 실행 하는 것과 배치 파일에서 실행하는 것에 는 약간의 차이가 있습니다. 배치 파일에서 %각 변수 참조 앞에 두 문자 를 넣어야 합니다.

명령 행에서 :

FOR %i IN (*) DO ECHO %i

배치 파일에서 :

FOR %%i IN (*) DO ECHO %%i


답변

이 for-loop는 디렉토리의 모든 파일을 나열합니다.

pushd somedir
for /f "delims=" %%f in ('dir /b /a-d-h-s') do echo %%f
popd

“delims =”는 공백이있는 긴 파일 이름을 표시하는 데 유용합니다 …

‘/ b’는 크기 날짜 등이 아닌 이름 만 표시합니다.

dir의 / a 인수에 대해 알아야 할 사항.

  • “/ a”를 사용하면 숨겨진 속성 및 시스템 속성을 포함한 모든 것이 나열됩니다.
  • “/ ad”는 숨겨진 디렉토리와 시스템 디렉토리를 포함한 서브 디렉토리 만 표시합니다.
  • “/ ad”인수는 ‘D’ irectory 속성이있는 컨텐츠를 제거합니다.
  • “/ adhs”는 모든 것을 표시하지만 ‘D’ irectory,’H’idden ‘S’ystem 속성이있는 항목을 표시합니다.

명령 행에서 이것을 사용하는 경우 “%”를 제거하십시오.

도움이 되었기를 바랍니다.


답변

% 1은 (는) 처음 전달 된 인수를 나타내며 반복자에서 사용할 수 없습니다.

이 시도:

@echo off
for %%i in (*.*) do echo %%i


답변

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

전체 안내서를 보려면 cmd에서 “HELP FOR”을 사용해보십시오.

XP 명령어를위한 안내서입니다. http://www.ss64.com/nt/