Remove-Item иногда не всегда удаляет все - PullRequest
0 голосов
/ 06 мая 2019

Я создал функцию в PowerShell, в основном работает нормально, но иногда это не так, функция должна удалять некоторые папки, включая файлы, в некоторых из них может быть более 200 тыс. Файлов. получение "папка не пуста". Что правильно. в этой папке есть что-то, что тоже нужно удалить. Но я не могу понять, почему иногда он удаляет все, а иногда нет.

Я использую VMware для своего теста, когда запускаю скрипт и тестирую его. После того, как сценарий завершается, и нет ошибки, и все было удалено, я восстанавливаю ВМ в его предыдущее состояние из моментального снимка, затем снова запускаю сценарий, и в результате он может произойти сбой без причины.

Когда я говорю о сбое, я имею в виду, что он может оставить одну пустую папку без файлов внутри.

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"
...