Csv ForEach对象:无法转换';系统对象[]和#x27;

Csv ForEach对象:无法转换';系统对象[]和#x27;,csv,powershell,foreach,Csv,Powershell,Foreach,出于某种原因,我有一个脚本,开始给我的问题突然。也许是同事修改了它,我不知道,但我需要让它重新运行 这是导致问题的脚本: $result = ForEach-Object $filter { Select-String -Pattern $pattern | Select-Object Path, LineNumber, Line } $result | Export-Csv "W:\test\search_results\$name.csv" -NoType 如果我将其导出到

出于某种原因,我有一个脚本,开始给我的问题突然。也许是同事修改了它,我不知道,但我需要让它重新运行

这是导致问题的脚本:

$result = ForEach-Object $filter {
    Select-String -Pattern $pattern |
    Select-Object Path, LineNumber, Line }
$result | Export-Csv "W:\test\search_results\$name.csv" -NoType
如果我将其导出到CSV而不是
$result
,则
$filter
包含以下内容:

FullName \\omega.dce-eir.net\etm\ETMWinHeadPROD\CRA_WEB_UA\cra_htdocs\bt\fq-eng.html \\omega.dce-eir.net\etm\ETMWinHeadPROD\CRA_WEB_UA\cra_htdocs\bt\ll_fq-eng.html \\omega.dce-eir.net\etm\ETMWinHeadPROD\CRA_WEB_UA\cra_htdocs\bt\menu-eng.html 全名 \\omega.dce eir.net\etm\ETMWinHeadPROD\CRA\u WEB\u UA\CRA\u htdocs\bt\fq-eng.html \\omega.dce eir.net\etm\ETMWinHeadPROD\CRA\u WEB\u UA\CRA\u htdocs\bt\ll\u fq-eng.html \\omega.dce eir.net\etm\ETMWinHeadPROD\CRA\u WEB\u UA\CRA\u htdocs\bt\menu-eng.html 我在运行代码时遇到以下错误:

ForEach-Object : Cannot convert 'System.Object[]' to the type 'System.Management.Automation.ScriptBlock' required by parameter 'Process'. Specified method is not supported. At C:\Tools\menu.ps1:41 char:37 + $result = ForEach-Object <<<< $filter { + CategoryInfo : InvalidArgument: (:) [ForEach-Object], ParameterBindingException + FullyQualifiedErrorId : CannotConvertArgument,Microsoft.PowerShell.Commands.ForEachObjectCommand ForEach对象:无法将“System.Object[]”转换为参数“Process”所需的类型“System.Management.Automation.ScriptBlock”。不支持指定的方法。 在C:\Tools\menu.ps1:41 char:37
+$result=ForEach对象是对象列表,而不是脚本块。您不能将它那样用于
ForEach对象
。将代码更改为:

$filter | Select-Object -Expand FullName |
  ForEach-Object { Select-String -Path $_ -Pattern $pattern } |
  Select-Object Path, LineNumber, Line |
  Export-Csv "W:\test\search_results\$name.csv" -NoType

$filter
是对象列表,而不是脚本块。您不能将它那样用于
ForEach对象
。将代码更改为:

$filter | Select-Object -Expand FullName |
  ForEach-Object { Select-String -Path $_ -Pattern $pattern } |
  Select-Object Path, LineNumber, Line |
  Export-Csv "W:\test\search_results\$name.csv" -NoType

就这样!谢谢就这样!谢谢