проверка ошибок powershell во время копирования файла с рекурсией - PullRequest
2 голосов
/ 28 сентября 2010

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

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

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

1 Ответ

3 голосов
/ 28 сентября 2010

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

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