我有一个不喜欢使用通配符的 cli 应用程序。在这个例子中使用*.dat
。我只是收到一个错误,指出文件 *.dat
无效。
我有一个包含数千个文件的文件夹,需要使用此工具进行处理。所以手动做是不行的。我遇到了很多遇到这个问题的应用程序,但这次它相当重要。如何处理这些应用程序的通用解决方案会非常好。
我可以制作所有 *.dat
文件的文件列表并将其提供给应用程序吗?
我没有必要使用批处理脚本,但它似乎是迄今为止最简单的解决方案。
最佳答案
您可以使用 for
循环:
for %%x in (*.dat) do mycommand "%%x"
这将为每个文件启动一次命令。如果你想聚合它们,你必须做更多的工作:
setlocal enabledelayedexpansion
set Count=0
set List=
for %%x in (*.dat) do (
set List=!List! "%%x"
set /a Count+=1
if !Count! GEQ 50 (
mycommand !List!
set List=
set Count=0
)
)
这会一次将 50 个文件传递给命令。如果需要,您可以调整该数字。问题是,如果文件夹中有数千个文件,那么您不能简单地将它们全部列在一个命令行中(因为存在最大命令行长度限制),因此您必须分块处理它们。
关于windows - 如何使用需要特定文件名的 CLI 工具在批处理脚本中使用通配符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11215246/