如何在PowerShell中实现不放入回收站的文件删除操作?
在PowerShell中实现不进回收站的文件删除操作
要直接删除30天以上的文件且不放入回收站,有两种可靠的方法:
方法一:使用PowerShell原生命令
PowerShell的Remove-Item默认不会将文件移入回收站,只有显式使用-RecycleBin参数时才会。针对你的需求,可以用以下代码:
$int1 = 30 New-PSDrive -Name "E" -PSProvider "FileSystem" -Root "\\Computer\c`$\Folder" -Persist # 筛选30天前的文件并直接删除 Get-ChildItem -Path E:\ -Recurse -File | Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-$int1) } | Remove-Item -Force
-Recurse:递归遍历子目录-File:仅处理文件(排除文件夹)-Force:强制删除只读、隐藏等特殊属性的文件- 建议先移除管道末尾的
| Remove-Item -Force,单独执行前面的命令,确认要删除的文件列表无误后再执行完整删除操作。
方法二:修复原FORFILES命令
你注释的FORFILES搭配del命令本身就是直接删除不进回收站的,只需补充/F参数强制删除只读文件即可:
$int1 = 30 New-PSDrive -Name "E" -PSProvider "FileSystem" -Root "\\Computer\c`$\Folder" -Persist FORFILES /p E:\ /s /m *.* /d -$int1 /c "CMD /c del /F /Q @FILE"
/F:强制删除只读文件/Q:安静模式,不提示确认删除
内容的提问来源于stack exchange,提问作者Дмитрий Захаров
相关产品推荐
相关产品推荐

