1

此代码在 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

}

有人可以帮忙吗?

4

2 回答 2

2

左大括号必须与 foreach 命令位于同一行,目前它位于新行:

Foreach-Object {...
于 2013-04-12T15:15:48.387 回答
0

正如 Shay Levy 指出的那样,大括号必须与ForEach-Object命令位于同一行。

... | ForEach-Object {
    $sourcefile = $_.Name
}

或者,您可以在行尾使用反引号字符 ` 来产生续行,这将允许您将左大括号放在下一行。作为一名 C# 开发人员,我更喜欢这个,以便我的大括号可以对齐。

... | ForEach-Object `
{
    $sourcefile = $_.Name
}
于 2017-04-03T07:18:43.077 回答