仅当结果可用时才归档。没有零 K 文件
Out-File only if Results are available. No Zero K files
当您将 Get-ChildItem
与 Where-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"
当您将 Get-ChildItem
与 Where-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"