【发布时间】:2020-03-03 08:17:39
【问题描述】:
我有这个 Powershell 脚本:
Get-ChildItem –Path "D:\Downloads" -Recurse |
Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-30))} | Remove-Item -Recurse -Force -Confirm:$false
如果我将它粘贴到 Powershell 窗口上,它可以工作,但是如果我尝试使用脚本执行 .ps1 文件,则会打开一个空白的 Powershell 窗口 1 秒(因为我使 .ps1 文件由 Windows Powershell 打开) 然后它关闭,但脚本不起作用。仅当我手动打开 Powershell 窗口并将其粘贴脚本时才有效。该文件具有所有用户的权限...
更新:
如果我作为 bat 文件运行,它会显示代码错误。
【问题讨论】:
-
对我来说,您的脚本工作正常并删除文件。检查您的执行策略可能是它的问题,并再次检查文件夹的权限。
-
我检查了,将 D:/Downloads 文件夹和文件本身的所有用户完全控制,但仍然无法正常工作。我试图将文件移动到另一个位置并执行它。我有另一个 .ps1 文件可以清理回收站,它可以打开文件并具有相同的权限,但是这个脚本不能通过这种方式工作......
-
我确定你已经检查过了,但还是要问。是否有超过 30 天的文件?
-
“脚本不起作用” - 它做了什么告诉你它不起作用?有错误信息吗?您可以在脚本末尾添加“start-sleep -seconds 30”,让您有机会在屏幕关闭之前阅读屏幕。
-
我使用了“start-sleep -seconds 30”,它仍然会立即关闭。 @Vlad,是的,有一个超过 30 天的文件。我一直在尝试同一个文件,如果我从 powershell 窗口手动使用脚本,脚本会工作并删除它,如果我直接运行文件,它不会删除它。
标签: powershell