如何用单行PowerShell代码生成带日期文件名导出PowerShell操作日志?
解决方案
直接用PowerShell的子表达式$(...)在文件名字符串中动态生成当日日期,单行命令实现如下:
Get-WinEvent -LogName Microsoft-Windows-PowerShell/Operational | Export-CSV "c:\temp\$(Get-Date -Format 'MM_dd_yyyy')_MWPSO.csv" -NoTypeInformation
说明
$(Get-Date -Format 'MM_dd_yyyy')会在执行时自动替换为当日的日期格式(月_日_年),彻底避免每次覆盖同一个文件的问题。- 加上
-NoTypeInformation参数可以去掉CSV文件开头默认的类型注释行,让输出的CSV更简洁通用。
任务计划配置注意事项
如果是在Windows任务计划的「操作」里设置,需要把命令作为powershell.exe的参数传入,注意引号转义:
- 程序/脚本:
powershell.exe - 添加参数(可选):
-Command "Get-WinEvent -LogName Microsoft-Windows-PowerShell/Operational | Export-CSV 'c:\temp\$(Get-Date -Format ''MM_dd_yyyy'')_MWPSO.csv' -NoTypeInformation"
这里把文件名里的单引号改成两个单引号,是为了在外层双引号包裹的参数中正确解析内部的引号逻辑。
内容的提问来源于stack exchange,提问作者pithhelmet
相关产品推荐
相关产品推荐

