使用PowerShell的Out-File时文件名含日期变量报错求助
解决PowerShell中Out-File因日期变量导致的路径格式错误
这个问题我之前处理过,核心是两个小问题导致的,咱们逐个解决:
问题根源
文件名包含Windows禁用的特殊字符
Windows系统的文件名里绝对不能出现:,/,\,*,?,",<,>,|这些字符。你用-UFormat "%Y-%m-%d %H:%M:%S"生成的日期字符串里包含冒号(:),这直接触发了路径格式不支持的错误。命令语法错误:引号未闭合
你的Out-File命令末尾少了一个闭合的双引号,这也会导致PowerShell解析路径时出现异常。
修正后的代码
# 将时间部分的冒号替换为Windows允许的下划线 $EndDate = Get-Date -UFormat "%Y-%m-%d %H_%M_%S" # 补全闭合引号,确保路径格式合法 Out-File -FilePath "C:\output\$env:COMPUTERNAME-$EndDate.json"
额外提示
- 我把
$host换成了$env:COMPUTERNAME,因为$host是PowerShell的内置自动变量,直接使用会输出主机对象的字符串表示(不是单纯的主机名),$env:COMPUTERNAME才是获取当前主机名的正确方式。 - 如果觉得文件名里的空格看着不舒服,也可以把日期里的空格换成下划线,比如用
%Y-%m-%d_%H_%M_%S作为格式字符串,生成的文件名会更规整。
内容的提问来源于stack exchange,提问作者meallhour
相关产品推荐
相关产品推荐

