Dan*_*ams 0 powershell output export-csv
为什么我在这里得到一个空白文件?当我在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
Run Code Online (Sandbox Code Playgroud)
通用参数-WhatIf- 用于预览命令的动作 - 从不输出数据 ; 相反,预览信息直接打印到控制台,这意味着它既不能通过管道发送,也不能重定向到文件,也不能捕获.
抛开:Remove-Item 没有 -WhatIf也从不产生数据输出,因此尝试在后续管道段中处理其输出通常没有意义.
最好的办法是到一个加-OutVariable(-ov)通用参数来你的Where-Object电话,让您通过导出收集文件信息的对象Export-Csv在不同的命令:
Get-ChildItem ... | Where-Object -OutVariable filesToRemove { ... } |
Remove-Item -WhatIf ...
$filesToRemove | Export-Csv D:\output.csv
Run Code Online (Sandbox Code Playgroud)
上面仍然将预览信息打印到控制台,但也收集变量中[System.IO.FileInfo]选择的对象,然后可以CSV格式导出.Where-Object$filesToRemove
| 归档时间: |
|
| 查看次数: |
270 次 |
| 最近记录: |