4

我有一个不喜欢使用通配符的 cli 应用程序。在本例中使用*.dat. 我只是收到文件*.dat无效的错误。

我有一个文件夹,其中包含数千个需要此工具处理的文件。所以手动操作是不行的。我遇到了很多有这个问题的应用程序,但这次它相当重要。如何处理这些应用程序的通用解决方案将非常好。

我可以制作所有*.dat文件的文件列表并将其提供给应用程序吗?我没有必要使用批处理脚本,但它似乎是迄今为止最简单的解决方案。

4

1 回答 1

5

您可以使用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 个文件传递给命令。如果需要,您可以调整该数字。问题是如果文件夹中有数千个文件,那么您不能简单地在一个命令行中将它们全部列出(因为存在最大命令行长度限制),因此您必须分块处理它们。

于 2012-06-26T20:15:04.363 回答