You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将PowerShell获取指定日期文件的脚本结果输出到日志文件?

如何将PowerShell脚本结果输出到日志文件

下面是几种实用方式,帮你把脚本执行结果写入日志文件:

1. 用重定向符号快速输出

这是最简便的方式,>会覆盖原有日志内容,>>则是追加内容:

$date = "12/31/2016"
Get-ChildItem T:\ -Recurse | Where-Object {$_.LastWriteTime -le [DateTime]$date} > C:\Logs\Old_Files.log

如果不想覆盖之前的日志,换成>>即可:

$date = "12/31/2016"
Get-ChildItem T:\ -Recurse | Where-Object {$_.LastWriteTime -le [DateTime]$date} >> C:\Logs\Old_Files.log

2. 用Out-File精细控制输出

Out-File支持编码、输出宽度等参数,适合需要调整日志格式或避免乱码的场景:

$date = "12/31/2016"
Get-ChildItem T:\ -Recurse | Where-Object {$_.LastWriteTime -le [DateTime]$date} | Out-File -FilePath "C:\Logs\Old_Files.log" -Encoding UTF8 -Force
  • -Encoding UTF8:确保日志用UTF8编码,防止中文或特殊字符乱码
  • -Force:自动创建日志所在的目录(前提是你有对应权限)

3. 记录完整执行过程(含错误信息)

如果需要排查脚本执行中的问题(比如某些文件夹访问被拒绝),可以用Start-Transcript记录整个控制台输出:

Start-Transcript -Path "C:\Logs\File_Scan_Log.log" -Append

$date = "12/31/2016"
Get-ChildItem T:\ -Recurse | Where-Object {$_.LastWriteTime -le [DateTime]$date}

Stop-Transcript

这种方式会把脚本运行时的所有输出(包括错误提示)都写入日志,方便调试。

额外优化:避免日期解析问题

不同系统区域设置可能导致日期字符串解析错误,建议用明确的格式转换:

$date = [DateTime]::ParseExact("2016-12-31", "yyyy-MM-dd", $null)
Get-ChildItem T:\ -Recurse | Where-Object {$_.LastWriteTime -le $date} | Out-File "C:\Logs\Old_Files.log"

内容的提问来源于stack exchange,提问作者Junior Vasquez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 06:12:20