Как переименовать все файлы, которые заканчиваются на «.BAK»

Как переименовать все файлы, которые заканчиваются на «.BAK»

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

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

Это произошло с некоторыми, но не со всеми файлами в каталоге.

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

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

решение1

В PowerShell можно сделать что-то вроде этого:

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

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

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

Связанный контент