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
就这样!谢谢就这样!谢谢