在unix shell中,有一个命令:
echo *.txt
打印:
1.txt 2.txt 3.txt
因为shell在*.txt
arg上执行文件名扩展。是否有可能通过Powershell获得相同的结果?尝试:
echo *.txt
结果就在:
*.txt
当然,回声只是一个愚蠢的例子。在实践中,我想将所有* .txt文件传递给不执行文件名扩展的外部命令。
就我的目的而言,这看起来最好,即使它不是很优雅:
D:\cygwin\bin\echo.exe $(dir *.txt)
我在这里使用cygwin echo进行测试,因为powershell echo cmdlet会将文件格式化为对象。
答案 0 :(得分:4)
你可以做那样的事情。这个命令不像bash那样简洁,但想法是一样的。尝试这样的事情:
Get-ChildItem -Filter "*.txt"
或者
Get-ChildItem | Where-Object {$_.Extension -eq ".txt"}
<#Same command as above#>
Get-ChildItem | ? {$_.Extension -eq ".txt"}
或者(如Keith Hill所指出的)如果你真的需要它们在同一条线上:
"$(Get-ChildItem *.txt -Name)"