使用Where-Object找到打开文件

时间:2018-10-18 16:18:45

标签: powershell

我搜索一个文件,例如主机文件:

cd c:\Windows\System32
gci -Recurse | ? {$_.Name -eq 'hosts'}

现在我想在notepad中打开文件,所以我尝试了:

gci -Recurse | ? {$_.Name -eq 'hosts'} | notepad.exe $_.FullName

此错误。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:3)

notepad.exe不接受管道 output 输入

Get-ChildItem -Recurse -ErrorAction SilentlyContinue |
    Where-Object -FilterScript { $_.Name -eq 'hosts' } |
        Foreach-Object -Process { notepad.exe $_.FullName }
  

我建议为此在get-childitem上使用-Filter。这将大大提高脚本的性能。   -@亚光

Get-ChildItem -Filter Hosts -Recurse -ErrorAction SilentlyContinue |
    ForEach-Object -Process { notepad.exe $_.FullName }