У меня есть файловая система 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.