У меня есть файловая система Windows, в которой сбой в нашей программе резервного копирования переименовал сотни файлов.

Изменение выглядит так:
"ABC.PDF" -> "ABC.PDF.BAK"

Это случилось с некоторыми, но не со всеми файлами в каталоге.

Я хотел бы переименовать такие файлы в их старое имя, но скрипт должен выводить или игнорировать случаи, когда это невозможно, потому что «ABC.PDF» уже существует.

Я не знаком с пакетными сценариями, но PowerShell также доступна.

1 ответ1

1

Вы можете сделать что-то подобное в powershell:

$files = dir *.BAK
foreach($file in $files) {
    Rename-Item $file $file.BaseName -ErrorAction Ignore
}

Ошибка будет только в том случае, если эти файлы больше не существуют или если вы пытаетесь перезаписать файл.

Если вы хотите посмотреть, что он будет делать первым, добавьте флаг -WhatIf.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .