我正在尝试一个一个地传递文件(我必须指出这一点,因为可执行文件一次只接受一个文件)。所以,在我的批次中,我有以下几点:
FOR /F %file IN ('dir /b /s *.css') DO CALL myExecutable.exe %file
我应该看到同一目录中的文件,但没有任何反应,也没有显示错误。我在这里错过了什么吗?
我正在尝试一个一个地传递文件(我必须指出这一点,因为可执行文件一次只接受一个文件)。所以,在我的批次中,我有以下几点:
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"
这是我对类似 SO 问题的回答,我在其中提供了有关FOR
用于处理目录中所有文件的更多详细信息。