仅在结果可用时输出文件。没有Zero K文件

时间:2016-05-18 18:31:53

标签: powershell pipeline

当您使用Get-ChildItemWhere-Object子句使其仅在有结果的情况下在文本文件中生成结果时,是否有办法?

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

无论是否有结果,上面都会生成一个文件。我无法告知实施逻辑只能在结果可用时创建。

2 个答案:

答案 0 :(得分:2)

你不能这样做。你必须分两部分来完成:

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

答案 1 :(得分:2)

如果您使用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" ,似乎可以按照您的要求工作。

nvarchar