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

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

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

有帮助吗?

解决方案

你的例子中有几个错误:

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

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

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

这是 我的答案 到一个类似的问题,我在其中提供了有关使用的更多详细信息 FOR 处理目录中的所有文件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top