Проверка ошибок 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."
}
}