我在PowerShell中创建了一个函数,大多数情况下工作正常,但有时却无法正常运行,该函数应该删除一些包含文件的文件夹,其中一些可能包含200k以上的文件,这是我的错误得到的是“文件夹不为空”。哪个是对的。该文件夹上也有一些东西也需要删除。但是我不明白的是为什么有时它会删除所有内容,而有时却不删除。
运行脚本并对其进行测试时,我正在使用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"