Надежная пользовательская реализация в Windows достигается за счет снижения производительности.

спользованииRemove-Item команда, даже используя-r а также-Force параметры, иногда возвращается следующее сообщение об ошибке:

Remove-Item: невозможно удалить элемент C: \ Test Folder \ Test Folder \ Target: каталог не пуст.

В частности, это происходит, когда удаляемый каталог открывается в проводнике Windows.

Теперь, хотя этого можно избежать, просто закрыв Проводник Windows или не просматривая его, я работаю со своими сценариями в многопользовательской среде, где люди иногда просто забывают закрыть окна Проводника Windows, меня интересует решение для удаления целые папки и каталоги, даже если они открыты в проводнике Windows.

Есть ли вариант более мощный, чем-Force что я могу установить, чтобы добиться этого?

Чтобы надежно воспроизвести это, создайте папкуC:\Test Folder\Origin и заполните его некоторыми файлами и подпапками (важно), затем возьмите следующий сценарий или один подобный и выполните его один раз. Теперь откройте одну из подпапокC:\Test Folder\Target (в моем случае я использовалC:\Test Folder\Target\Another Subfolder содержащийA third file.txt) и попробуйте снова запустить скрипт. Теперь вы получите ошибку. Если вы запустите сценарий в третий раз, вы не получите ошибку снова (в зависимости от обстоятельств, которые мне еще предстоит определить, однако, ошибка иногда возникает во второй раз, а затем никогда больше, а в других случаях она возникаеткаждый второй раз).

$SourcePath =  "C:\Test Folder\Origin"
$TargetPath =  "C:\Test Folder\Target"

if (Test-Path $TargetPath) {
    Remove-Item -r $TargetPath -Force
}
New-Item -ItemType directory -Path $TargetPath 

Copy-Item $SourcePath -Destination $TargetPath -Force -Recurse -Container 

Ответы на вопрос(1)

Ваш ответ на вопрос