尝试使用批处理处理文件。没有输出,什么也没有发生

发布于 2024-09-14 10:09:06 字数 213 浏览 4 评论 0原文

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

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

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

I'm trying to pass files one by one(I have to dot that since executable only accepts one file at a time). So, in my batch I have follwoing:

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

I should see out files in same directory but nothing happens, no errors are displayed either.
Am I missing something here?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

风追烟花雨 2024-09-21 10:09:06

您的示例中有几个错误:

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

记住这些,这是您应该使用的正确命令:

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

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

You have several mistakes in your example:

  • FOR parameter name is a single letter only
  • CALL is used to call another batch file or a subroutine in the existing batch file, not executables
  • the FOR parameter should be referenced with two %, when in batch file
  • you need to use a non-space delimiter, if the directory you run this command in or any subdirectory, or if any of the files has a space in the name

With these in mind, here's the right command you should be using:

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

Here's my answer to a similar SO question, where I give more details on using FOR to process all files in a directory.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文