将多个通配符文件名传递给Windows

时间:2017-07-12 15:54:03

标签: windows batch-file

在使用Windows上的gcc进行开发期间,我已经两次遇到perl scripts,意味着Unix系统采用> 100个文件名列表作为参数,我需要使用通配符创建以从许多其他文件的文件夹中选择它们:

perl avstack.pl */*.o
perl egypt *.expand

但Windows并不进行通配符扩展,命令本身也需要这样做。如何编写批处理脚本以获取文件名列表并将其传递给程序?例如:

avstack.bat */*.o
egypt.bat *.expand

或者,由于每个批处理文件都知道文件扩展名,因此可以使用文件夹名称调用它:

avstack.bat "C:\path\with\some_o_files"
egypt.bat "D:\path\with\some_expand_files"

(实际上,文件夹方法可能会更好,因为我可以制作拖放快捷方式或SendTo菜单项。)

1 个答案:

答案 0 :(得分:1)

此类作品基于https://superuser.com/a/460648/13889

@echo off

cd "%~1"

set expanded_list=
for %%f in (*.expand) do call set expanded_list=%%expanded_list%% "%%f"

perl egypt %expanded_list% > egypt-output.txt