0

重複の可能性:
サブディレクトリを含むすべてのファイルを処理するためのbatファイルを作成し、同じディレクトリ構造で別のディレクトリに出力する方法は?

バッチ スクリプトを使用してサブ ディレクトリに移動する方法を尋ねる質問がいくつかありますが、ほとんどの場合、ファイルを一覧表示したり、この場合は必要のない非常に複雑なことを行ったりします。現在のディレクトリのすべてのサブディレクトリにあるすべての *.dat ファイルを処理する CLI プログラムがあります。ホームディレクトリを含める必要はありません。これは /r を使用して簡単な方法で実行できると確信していますが、私の試行はすべてエラーで終了しました。私が試した例:

for /r path %%var in (*.dat) do process.exe -8 %%var

私が得るのは構文エラーだけで、その理由はわかりません。

4

2 に答える 2

2

問題はFOR変数名です。これらは単一の文字である必要があり、大文字と小文字が区別されます。

また、ファイル名にスペースや特殊文字が含まれている可能性があるため、プログラムの引数として使用する場合は、変数を引用符で囲む必要があります。

現在のディレクトリ内からすべての.datファイルを再帰的に処理する場合は、/Rオプションにパス指定子は必要ありません。

for /r %%F in (*.dat) do process.exe -8 "%%F"

上記はコマンドラインから実行できますが、使用するのは1%のみです。

for /r %F in (*.dat) do process.exe -8 "%F"
于 2012-07-29T14:34:11.003 に答える
1

バッチの変数は1文字です

for /r path %%v in (*.dat) do process.exe -8 %%v

たとえば、このバッチタイプの*.datバッチディレクトリおよびサブディレクトリ内の各ファイルの内容

for /r "%~dp0" %%v in (*.dat) do type "%%v"
于 2012-07-29T14:34:00.250 に答える