私はカレントディレクトリのすべてのフォルダに何かをすることができるバッチファイルを作成したいと思います。しかし、私はこの構文を使用してそれを見つけたすべてのスーパー隠しファイル/ディレクトリを読み取るwindowsバッチファイル
for /d %%i in (*) do echo %%i
それは隠しファイルを見つけることができません。 追加の構文を追加する必要がありますか?
私はカレントディレクトリのすべてのフォルダに何かをすることができるバッチファイルを作成したいと思います。しかし、私はこの構文を使用してそれを見つけたすべてのスーパー隠しファイル/ディレクトリを読み取るwindowsバッチファイル
for /d %%i in (*) do echo %%i
それは隠しファイルを見つけることができません。 追加の構文を追加する必要がありますか?
FOR /D
の動作を修正するために何かができるかどうかはわかりませんが、別の方法を使用することもできます。 FOR /F
ループでDIR
の出力を使用することができます。
今すぐDIR
コマンドは引数を受け取ります。これにより、必要な出力を得ることができます。特にDIR
には、非表示のディレクトリ名(/ADH
)のみを表示し、日付&の時刻と要約(/B
)などの情報は必要ありません。詳細については、コマンドプロンプトでDIR /?
またはHELP DIR
を実行してください。
だから、あなたのループは次のようになります。最初のスペースまでを読みとは対照的に、FOR /F
ループの
FOR /F "delims=" %%D IN ('DIR /ADH /B') DO ECHO %%D
delims
オプションは、DIR
出力の行全体を消費するループを指示し、そのデフォルトの動作です。コマンドプロンプトでFOR
のヘルプを呼び出すと、FOR /?
またはHELP FOR
というメッセージが表示されます。
「DIR出力の全ラインを消費する」とはどういう意味ですか? – Fugogugo
@Fugogugo:オプションに '' delims = "'を指定せず、出力に 'Program Files'のような名前がある場合、' %% D'変数は 'Program'の代わりに' Program'だけ割り当てられますデフォルトでは行は最初の空白文字まで読み込まれます。 '" delims = "'を指定すると、行全体が読み込まれます。代わりに '' delims = "'の代わりに '' tokens = * "'を使っても同じ効果を得ることができます。 –