【问题标题】:Passing multiple wildcard filenames to a command in Windows将多个通配符文件名传递给 Windows 中的命令
【发布时间】:2017-07-12 15:54:02
【问题描述】:

现在在 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 菜单项。)

【问题讨论】:

  • 在您的批处理文件中,使用FOR 命令获取文件夹中的文件列表。
  • @Squashman 我在这里阅读了许多相关的问题和答案,但我不知道如何生成单行文件名列表并将整个列表作为参数传递给命令

标签: windows batch-file


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-16
    • 2018-06-20
    • 2011-08-07
    • 1970-01-01
    • 1970-01-01
    • 2019-05-26
    • 1970-01-01
    相关资源
    最近更新 更多