【发布时间】:2018-04-02 16:28:29
【问题描述】:
为什么我在这里得到一个空白文件?当我在 export-csv 之前运行它时,我会在控制台中显示大量记录。
这是我正在使用的代码
$path = "C:\test"
Get-ChildItem -Path $path -Include *.edi, *.x12, *.filename, *.dat, *.log, *.mdn, *.req -Recurse -Force |
Where-Object {!$_.PSIsContainer -and ((get-date)-$_.LastWriteTime).days -gt 30 } |
Remove-Item -force -whatif | export-csv D:\output.csv #also I try out-file D:\output.txt
【问题讨论】:
-
相当肯定 -Whatif 生成详细输出,因此管道中不会有任何对象传递给 Export-csv。
-
@EBGreen:关于
-WhatIf的总体观点很好,但看起来信息直接打印到控制台,而不是详细的输出流(编号4)。 -
@mklement0 你的假设是正确的(它是
[string]对象输出到1流) -
@TheIncorrigible1:在 PowerShell 的上下文中,
1是成功(数据)输出流,但这不是-WhatIf输出的位置 - 据我所知,您无法捕获/ 从 within PowerShell 将其全部重定向。 (您可以从外部,例如从cmd.exe呼叫时)。 -
@mklement0 嗯,我很快就在这里开枪了。将命令包装在括号中并访问其类型报告的字符串,但现在尝试使用重定向或其他 cmdlet 不会捕获该输出。它甚至不像 PSv5 中的
Write-Host那样使用5(信息)
标签: powershell output export-csv