0

ファイルを1つずつ渡そうとしています(実行可能ファイルは一度に1つのファイルしか受け入れないため、ドットを付ける必要があります)。したがって、私のバッチでは、次のことを行っています。

FOR /F %file IN ('dir /b /s *.css') DO CALL myExecutable.exe %file 

同じディレクトリにファイルが表示されるはずですが、何も起こらず、エラーも表示されません。ここで何か不足していますか?

4

1 に答える 1

1

あなたの例にはいくつかの間違いがあります:

  • FORパラメータ名は一文字のみ
  • CALL実行可能ファイルではなく、既存のバッチ ファイル内の別のバッチ ファイルまたはサブルーチンを呼び出すために使用されます
  • FORパラメータは、バッチ ファイルでは 2 つの % で参照する必要があります 。
  • このコマンドを実行するディレクトリまたはサブディレクトリの場合、またはいずれかのファイルの名前にスペースが含まれている場合は、スペース以外の区切り文字を使用する必要があります

これらを念頭に置いて、使用すべき正しいコマンドを次に示します。

for /f "usebackq delims=|" %%f in (`dir /b /s *.css`) do myexecutable.exe "%%f"

同様の SO の質問に対する私の回答は次のとおりです。ここFORでは、ディレクトリ内のすべてのファイルを処理するために使用する方法について詳しく説明します。

于 2010-08-11T20:36:20.733 に答える