0

我正在尝试一个一个地传递文件(我必须指出这一点,因为可执行文件一次只接受一个文件)。所以,在我的批次中,我有以下几点:

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

我应该看到同一目录中的文件,但没有任何反应,也没有显示错误。我在这里错过了什么吗?

4

1 回答 1

1

您的示例中有几个错误:

  • FOR参数名称只有一个字母
  • CALL用于调用另一个批处理文件或现有批处理文件中的子程序,而不是可执行文件
  • FOR批处理文件中,参数应该用两个 % 引用
  • 如果您在其中运行此命令的目录或任何子目录,或者任何文件的名称中有空格,则您需要使用非空格分隔符

考虑到这些,这是您应该使用的正确命令:

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

这是对类似 SO 问题的回答,我在其中提供了有关FOR用于处理目录中所有文件的更多详细信息。

于 2010-08-11T20:36:20.733 回答