此代码在PowerShell v1中运行,但不在PowerShell v2中运行。 现在它提示一个值:
Get-ChildItem -Path $source -Filter "*.journal" | Where-Object { $_.Name -match 'SoundPC\[\d{1,12}-\d{1,12}\].journal' } | Sort-Object -Property CreationTime | ForEach-Object { $sourcefile = $_.Name }
有人可以帮忙吗?
左括号必须与foreach命令位于同一行,目前它的新行:
Foreach-Object {...
正如Shay Levy指出的,大括号必须与ForEach-Object
命令位于同一行。
... | ForEach-Object { $sourcefile = $_.Name }
另外,你也可以在行尾使用反引号来产生一个延续,然后你可以把下一行的大括号。 作为一名C#开发人员,我更喜欢这样,这样我的大括号就可以排队了。
... | ForEach-Object ` { $sourcefile = $_.Name }