Проверка ошибок powershell во время копирования файла с рекурсией

У меня есть программа, которая копирует папки и файлы рекурсивно. пример:

Copy-Item -path "$folderA" -destination "$folderB" -recurse 

Иногда файлы не копируются. Есть ли способ "войти внутрь рекурсии" или лучший способ сделать это, чтобы я мог включить некоторую проверку ошибок во время процесса, а не после защиты? Возможно, даже сделать тест-путь и запросить повторную проверку?

1 ответ

Решение

Вы можете. Например, следующий фрагмент кода на самом деле скопирует и проверит каждый файл на наличие возможных ошибок. Вы также можете поместить свой собственный код в начале, чтобы проверить наличие некоторых предпосылок:

get-childItem $source -filter *.* | foreach-object {
    # here you can put your pre-copy tests...

    copy-item $_.FullName -destination $target -errorAction SilentlyContinue -errorVariable errors
    foreach($error in $errors)
    {
        if ($error.Exception -ne $null)
        {
            write-host -foregroundColor Red "Exception: $($error.Exception)"
        }
        write-host -foregroundColor Red "Error: An error occured during copy operation."
    }
}
Другие вопросы по тегам