在命令提示符中连接列表

时间:2017-01-11 07:43:30

标签: batch-file command-line command-line-arguments command-prompt

我有一个Windows控制台应用程序,它接受一个文件列表作为参数,每个文件用空格分隔,如MyApp.exe 1.txt 2.txt 3.txt。我的文件夹除了txt之外还有其他文件格式,但我只对txt文件感兴趣。我想实现像MyApp.exe for %%i in (.\*.txt)这样的东西。提前谢谢。

1 个答案:

答案 0 :(得分:2)

唯一的特点就是你需要启用delayed expansion - 这样做:

@ECHO OFF
SETLOCAL EnableDelayedExpansion
FOR %%I IN (.\*.txt) DO SET files=!files! %%I
MyApp.exe !files!

这将致电:

MyApp.exe .\1.txt .\2.txt .\3.txt

如果您要删除任何路径信息,请使用%%~nxI代替%%I

@ECHO OFF
SETLOCAL EnableDelayedExpansion
FOR %%I IN (.\*.txt) DO SET files=!files! %%~nxI
MyApp.exe !files!

这将导致:

MyApp.exe 1.txt 2.txt 3.txt

请注意a limit on the length of the command

  

在运行Microsoft Windows XP或更高版本的计算机上,最大长度   您可以在命令提示符处使用的字符串是8191   字符。