本地正常运行的PowerShell脚本在服务器执行时报错求助
问题解决:PowerShell脚本服务器执行报错“找不到参数‘File’”
问题根源
你脚本里的参数破折号是中文全角的“–”,不是PowerShell要求的英文半角“-”,虽然本地环境可能兼容识别,但服务器的PowerShell 5.0对符号更严格,导致无法解析–File这类带全角符号的参数,误以为是无效参数名。
修正后的脚本
把所有全角破折号替换成半角减号,同时可以简化冗余的-Include *.*(默认匹配所有文件),最终脚本如下:
Get-ChildItem -Path "D:\file\source" -File -Recurse | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } | Remove-Item
可选优化
- 如果需要删除只读等特殊属性的文件,给
Remove-Item加上-Force参数:Get-ChildItem -Path "D:\file\source" -File -Recurse | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } | Remove-Item -Force - 执行前先测试(不实际删除),加上
-WhatIf参数:Get-ChildItem -Path "D:\file\source" -File -Recurse | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } | Remove-Item -WhatIf
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

