gpt4 book ai didi

powershell - 删除项目在文件被删除之前返回?

转载 作者:行者123 更新时间:2023-12-02 22:21:13 24 4
gpt4 key购买 nike

在 PowerShell 中,我相信我观察到 PowerShell 正在尝试在删除文件夹内容之前删除文件夹。我使用的命令是Remove-Item

过去,将其与 -recurse 一起使用会偶尔出错,提示目录不为空。当我看到这个错误时,我去检查时发现目标目录是空的。我最好的猜测是,当文件仍在删除过程中时,它仍在继续。现在我看到了更多证据。

由于上述原因,我尝试使用以下代码片段:

$toDelete = Get-ChildItem $path -Recurse
[Array]::Reverse($toDelete)
$toDelete | Remove-Item
Remove-Item $path

我现在得到的是以下提示:

Confirm
The item at [path to directory] has children and the Recurse parameter was not specified. If you continue, all
children will be removed with the item. Are you sure you want to continue?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):

再一次,当我去检查时,目录是空的。我最好的猜测是 $toDelete |在实际删除文件之前,Remove-Item 返回,并且我在 Remove-Item $path 上看到此提示。

这是一个已知问题吗?我对正在发生的事情的怀疑是错误的吗?我该如何解决这个问题?

我尝试使用cmd/C“rd/S [目录路径]”,但这有问题,因为我发现删除失败时退出代码为0一些正在使用的 child 。 (这是我使用的潜在情况,我需要它是一个错误情况。)

最佳答案

使用 -Recurse 开关删除项目在 V1-V3 中存在错误(它实际上告诉您它在帮助中无法正常工作)。它(最终)在 V4 中被修复。我已经使用此方法作为解决方法,并且它始终对我有用:

$toDelete = Get-ChildItem $path -Recurse |
select -ExpandProperty fullname |
sort -Property Length -Descending |
Remove-Item
Remove-Item $path

关于powershell - 删除项目在文件被删除之前返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20112707/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com