PowerShell脚本修改文件创建日期的语法/参数问题排查
问题:PowerShell修改文件创建日期报错
我从未使用过PowerShell,尝试修改文件创建日期时遇到问题。参考相关示例编写的代码运行报错,怀疑是方法参数问题。
我的脚本:
PS c:\Users (Get-Item "C:\Users\me\Desktop\Holiday Schedule.pdf").CreationTime=("21 November 2022 13:10:00")
报错信息:
Get-Process : A positional parameter cannot be found that accepts argument '11/22/2022 12:09:00 PM'. At line:1 char:1 + PS c:\Users (Get-Item "C:\Users\svallery\Desktop\RDSI 2023 Holiday Sc ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Get-Process], ParameterBindingException + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.GetProcessCommand
解决方法
错误原因
你误将PowerShell的提示符PS c:\Users 写入了命令中,PowerShell会把c:\Users识别为Get-Process命令的参数(命令开头的PS会被忽略,剩下的c:\Users作为第一个参数),而Get-Process不接受这类参数,因此触发报错。
正确命令
去掉开头的提示符部分,直接执行以下命令即可:
(Get-Item "C:\Users\me\Desktop\Holiday Schedule.pdf").CreationTime = "21 November 2022 13:10:00"
补充说明
如果担心日期格式解析出问题,可以显式转换为DateTime类型,提升兼容性:
$file = Get-Item "C:\Users\me\Desktop\Holiday Schedule.pdf" $file.CreationTime = [DateTime]::Parse("21 November 2022 13:10:00")
内容的提问来源于stack exchange,提问作者svstackoverflow
相关产品推荐
相关产品推荐

