如何使用命令提示符或PowerShell在Windows中实现此目的?
myprog *
编辑:我想用当前目录中的每个文件作为参数调用myprog。
答案 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