我试图让这个简单的PowerShell脚本正常工作,但我认为有些地方基本上有问题。 ;-)
ls | ForEach { "C:\Working\tools\custom-tool.exe" $_ }
我基本上想获取目录中的文件,并将它们逐个作为参数传递给自定义工具。
我试图让这个简单的PowerShell脚本正常工作,但我认为有些地方基本上有问题。 ;-)
ls | ForEach { "C:\Working\tools\custom-tool.exe" $_ }
我基本上想获取目录中的文件,并将它们逐个作为参数传递给自定义工具。
ls | % { &"C:\Working\tools\custom-tool.exe" $_.FullName }
注意在字符串前使用 &,以强制 PowerShell 将其解释为命令而不是字符串。
->注意在字符串前使用 &,以强制 PowerShell 将其解释为命令而不是字符串。
ls | %{C:\Working\tools\custom-tool.exe $_}
每当一个对象经过管道时,该工具将对其运行。在命令字符串周围加上引号会导致它成为一个字符串!本地变量"$_"可能无法处理,因此会出错。
我猜测你的工具需要完整路径。 $_ 是通过管道传递的每个文件对象。 你可能需要使用这样的表达式:
ls | %{C:\Working\tools\custom-tool.exe $_.fullname}
Jeffrery Hicks和slipsec都是正确的。去掉双引号。
在我的测试脚本(如下)中,$_或$_.fullname有效。对于您的自定义工具可能会有所不同。
gci | % { c:\windows\notepad.exe $_.fullname }
或者
gci | % { c:\windows\notepad.exe $_ }
ls | % { &"C:\Working\tools\custom-tool.exe" $_.FullName --flag --flag2=47}
- Nick TForEach-Object
的别名。你可以在 PowerShell 提示符下键入get-alias
来查看当前的别名。 - User