匹配当前目录中的所有文件

时间:2010-06-23 12:26:03

标签: command-line powershell cmd

如何使用命令提示符或PowerShell在Windows中实现此目的?

myprog *

编辑:我想用当前目录中的每个文件作为参数调用myprog。

4 个答案:

答案 0 :(得分:3)

如果您的目标是为目录中的每个文件调用“myprog.exe”,假设“myprog.exe”不能通过itselef处理通配符,那么它应该是类似于powershell的那样:

dir | % {prog $_.FullName} 

修改:考虑您的评论,请尝试以下操作:

prog (get-childItem -name)

希望它有所帮助...

答案 1 :(得分:2)

我在一个函数ea(ExpandAll?)中包含了CédricRup的解决方案。虽然不像Unix方法那样干净。

function ea ($p="*") { dir $p | foreach { '"{0}" ' -f $_.Name } }

.\Myprog.exe (ea)
.\Myprog.exe (ea *)
.\Myprog.exe (ea *.txt)

答案 2 :(得分:1)

在.CMD或.BAT文件中:

SETLOCAL EnableDelayedExpansion
FOR %%f in (*) DO SET params=!params! "%%f"
CALL myprog %params%

SETLOCAL EnableDelayedExpansion!variable!语法允许您累积结果。 (有关解释和示例,请参阅this page。)

编辑:在%% f周围添加了引号,并将列表更改为“*”...请参阅下面的评论。

答案 3 :(得分:0)

你的意思是命令shell(cmd.exe)中的以下构造:

for %f IN (*.*) DO echo %f
相关问题