2

一部のディレクトリの一部のzipにあるいくつかのrarをバッチ抽出しようとしています。簡単に言うと、これはrarファイルのループです。

for %%r in (*.rar) do (

unrar x %%r
)

問題は、%%r が間違った値を取得することです。ファイル名が「file name.rar」の場合、%%r は値「file」を取得します。ファイル名の最初のスペースで停止します。

このループで名前にスペースが含まれるファイルを動作させるにはどうすればよいですか?

ありがとうございました

4

3 に答える 3

1

%%rスペースを含む完全なファイル名が含まれます。問題があるのはあなたの電話unrarです。ファイル名にスペースが含まれている場合は、引用符で囲む必要があります。そうしunrarないと、2 つの (スペースで区切られた) パラメータがfilename.rar実際にはスペースを含む 1 つのファイル名であることがわかりません。

したがって、次のように動作します。

for %%r in (*.rar) do unrar "%%r"

また、問題がどこにあるのか知りたい場合は、プログラム呼び出しを単純に echo に置き換えると非常に役立つ場合があります。

for %%r in (*.rar) do @echo %%r

%%r がファイル名にスペースを含み、それらを引き裂かないことがわかります。

于 2009-05-05T08:02:02.353 に答える
0

問題は、「for」がデフォルトの区切りとしてスペースを使用することです。これは、delims = xxx を使用して設定できます。構文については、こちらをご覧ください。または、ForFilesを使用できます。

于 2009-05-04T22:22:46.130 に答える