powershell - Remove-Item 有时并不总是删除所有内容
问题描述
我在 PowerShell 中创建了一个函数,大部分工作正常,但有时它没有,该函数应该删除一些包含文件的文件夹,其中一些可能有超过 20 万个文件,我得到的错误是“文件夹不为空”。哪个是对的。该文件夹中的某些内容也需要删除。但我无法理解的是为什么有时它会删除所有内容,有时不会。
当我运行脚本并对其进行测试时,我正在使用 VMware 进行测试。在脚本完成并且没有错误并且所有内容都已删除后,我正在将 VM 从快照恢复到以前的状态,然后再次运行脚本,结果是它可能会无缘无故地失败。
当我说失败时,我的意思是它可能会留下一个空文件夹,里面没有文件。
function Delete {
if (Test-Path $($args[0])) {
Write-Host -ForegroundColor Yellow "Deleting $args"
Get-ChildItem -Path $args -Recurse -Force | Where-Object {
-not ($_.PSIsContainer)
} | Remove-Item -Force
Remove-Item $args -Recurse -Force
} else {
Write-Host -ForegroundColor Red "$args Does not exist"
}
}
Delete "C:\Backup1"
Delete "C:\Backup2"
解决方案
推荐阅读
- sas - 箱形图中作为标签的值
- javascript - 如何最小化那个长代码并创建一个循环
- reactjs - 反应:未捕获的类型错误:无法读取未定义的属性“localeCompare”
- javascript - 如何使用 firebase / vue.js 实时删除功能
- macos - “致命错误:找不到'omp.h'文件”在Apple M1上使用clang
- vue.js - Vue SPA 机器人元标记未被 Google 索引
- facebook-graph-api - 使用动态元标题将 URL 分享到 facebook
- typescript - 如何为接受泛型数组的打字稿函数添加类型
- python - 如何在 python 中重用单个 random() 实例
- docker - Kubeflow Kale 在管道步骤中指定容器镜像