1. ホーム
  2. command-line

[解決済み】バッチファイルでワイルドカードに一致するファイルをループ再生する方法

2022-04-10 21:55:11

質問

私は基本的なファイル名のセットを持っており、それぞれの名前 'f' に対して 'f.in' と 'f.out' というちょうど2つのファイルがあります。 私は、すべてのファイル名を通過するバッチファイルを(Windows XPで)書きたいのですが、それぞれのファイル名に対して、それは必要です。

  • ベースネーム'f'を表示する
  • 'f.in'に対してアクションを実行する
  • f.out'に対して別のアクションを実行する。

例えば*.in(または*.out)を検索する以外に、ベースとなるファイル名のセットをリストアップする方法がないんだ。

どのように解決するのですか?

process_in.exeとprocess_out.exeという2つのファイルを処理するプログラムがあると仮定します。

for %%f in (*.in) do (
    echo %%~nf
    process_in "%%~nf.in"
    process_out "%%~nf.out"
)

は置換修飾子で、%f をファイル名のみに展開します。 の他の修飾子を参照してください。 https://technet.microsoft.com/en-us/library/bb490909.aspx (ページの中程)または、次の回答で紹介します。