.batまたは.cmdファイルを含むディレクトリ内の各ファイルをどのように反復しますか?
簡単にするために、ファイル名またはファイルパスをエコーするだけの答えを提供してください。
.batまたは.cmdファイルを含むディレクトリ内の各ファイルをどのように反復しますか?
簡単にするために、ファイル名またはファイルパスをエコーするだけの答えを提供してください。
コマンドラインの使用法:
for /f %f in ('dir /b c:\') do echo %f
バッチファイルの使用法:
for /f %%f in ('dir /b c:\') do echo %%f
更新for /f
:ディレクトリに名前にスペースが含まれるファイルが含まれている場合は、コマンドが使用している区切り文字を変更する必要があります。たとえば、pipecharを使用できます。
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 /r path %%var in (*.*) do some_command %%var
と:
別の方法:
for %f in (*.mp4) do call ffmpeg -i "%~f" -vcodec copy -acodec copy "%~nf.avi"
ディレクトリ内のすべてのファイルを隠し/システム/読み取り専用としてマークするマルウェアがいくつかありました。他の誰かがこの状況に陥った場合は、cd でディレクトリに移動して を実行してfor /f "delims=|" %f in ('forfiles') do attrib -s -h -r %f
ください。