在命令提示符下连接列表



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

唯一的特点是你需要启用延迟扩展 - 这样做:

@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

请注意,命令的长度有限制:

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

最新更新