Подтвердить что ты не робот

PowerShell - подавить ошибку Copy-Item "Папка уже существует"

Когда я запускаю рекурсивный элемент Copy-Item из папки, в которой есть подпапки, в новую папку, которая содержит те же подпапки, что и оригинал, он выдает ошибку, когда подпапки уже существуют.

Как я могу подавить это, потому что это ложный минус и может сделать истинные ошибки труднее увидеть?

Пример:

Copy-Item "C:\realFolder\*" "C:\realFolder_new" -recurse

Copy-Item : Item with specified name C:\realFolder_new\subFolder already exists.
4b9b3361

Ответ 1

Вы можете попытаться зафиксировать любые ошибки и решить, заботитесь ли вы об этом или нет:

Copy-Item "C:\realFolder\*" "C:\realFolder_new" -recurse -ErrorVariable capturedErrors -ErrorAction SilentlyContinue
$capturedErrors | foreach-object { if ($_ -notmatch "already exists") { write-error $_ } }

Ответ 2

Если вы добавите -Force к вашей команде, она перезапишет существующие файлы, и вы не увидите ошибку.

-Recurse заменит все элементы в каждой папке и всех подпапках.

Copy-Item "C:\realFolder\*" "C:\realFolder_new" -Recurse -Force

Ответ 3

Вы можете установить поведение обработки ошибок для игнорирования с помощью:

Copy-Item "C:\realFolder\*" "C:\realFolder_new" -recurse -ErrorAction SilentlyContinue

Однако это также подавляет ошибки, о которых вам сделал!