仅当结果可用时才归档。没有零 K 文件

Out-File only if Results are available. No Zero K files

当您将 Get-ChildItemWhere-Object 子句一起使用时,有没有办法让它仅在有结果时才在文本文件中生成结果?

Get-ChildItem -path \$server\e$ -Recurse | Where-Object {$_.name -eq help.txt} | `
out-file "c:\temp$server.txt"

以上不管有没有结果都会出一个文件。我无法告诉我如何实现仅在结果可用时才创建的逻辑。

你不能那样做。您必须分两部分完成:

$results = Get-ChildItem -path \$server\e$ -Recurse | Where-Object {$_.name -eq help.txt}
if ($results) {
    $results | out-file "c:\temp$server.txt"
}

如果您使用 Set-Content 而不是 Out-File,似乎可以按照您想要的方式工作。

Get-ChildItem -path \$server\e$ -Recurse | Where-Object {$_.name -eq help.txt} | 
Set-Content "c:\temp$server.txt"

#or

gci -R \$server\e$ |? Name -eq "help.txt" | sc "c:\temp$server.txt"