在使用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菜单项。)
答案 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