2010-08-11 61 views
0

我试图逐个地传递文件(我必须点,因为可执行文件一次只接受一个文件)。所以,在我批我已经follwoing:尝试使用批处理文件。没有输出,什么都没有发生

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

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

回答

1

您的例子几个错误:

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

有了这些考虑的空间,这里是你应该使用正确的命令:

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

这里的my answer到类似的SO问题,在这里我给使用FOR更多细节处理目录中的所有文件。

+0

从技术上讲,你不需要'usebackq'在你的特定场景中,但这是一个好习惯。 – 2010-08-11 20:37:37

+0

谢谢你,这使它的工作。除了我不得不排除“usebackq delims = |”。它没有工作,它开始处理'dir''b'作为实际的文件名。一旦它被删除,一切正常。 – 2010-08-11 20:47:19

相关问题