我熟悉BASH语法如何处理此请求但我无法在PowerShell中找到这样做的方法。
BASH示例:
for x in `ls .`; do something with ${x}; done
我试图用PowerShell执行相同的操作(为了演示目的,它的语法不正确)...
ForEach ($group in `$wsus.GetComputerTargetGroups()`)
...我显然遇到语法错误。
BASH to PowerShell翻译就是这里的问题。 :d
答案 0 :(得分:5)
对于你拥有的例子,它可以正常工作(没有反引号):
ForEach ($group in $wsus.GetComputerTargetGroups()) {
# do stuff
}
如果它是一个命令,你可以将它包装在子表达式中:
foreach ($process in $(Get-Process)) {
# do stuff
}
您还可以查看在PowerShell管道中更加惯用的ForEach-Object
cmdlet:
Get-Process | ForEach-Object { Write-Verbose "This process is $_" -Verbose }
答案 1 :(得分:0)
这可能有助于你开始......
$things = Get-ChildItem C:\Windows\
foreach ($thing in $things) {
# Do a thing with each one in turn
Write-Host $thing.Name -ForegroundColor Magenta
}