我有一个不喜欢使用通配符的 cli 应用程序。在本例中使用*.dat
. 我只是收到文件*.dat
无效的错误。
我有一个文件夹,其中包含数千个需要此工具处理的文件。所以手动操作是不行的。我遇到了很多有这个问题的应用程序,但这次它相当重要。如何处理这些应用程序的通用解决方案将非常好。
我可以制作所有*.dat
文件的文件列表并将其提供给应用程序吗?我没有必要使用批处理脚本,但它似乎是迄今为止最简单的解决方案。
我有一个不喜欢使用通配符的 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 个文件传递给命令。如果需要,您可以调整该数字。问题是如果文件夹中有数千个文件,那么您不能简单地在一个命令行中将它们全部列出(因为存在最大命令行长度限制),因此您必须分块处理它们。