Скрипт для пакетного переименования на основе первого символа исходного имени файла?

мы OCRing весь наш заказ на продажу в нашем офисе. Файлы PDF создаются на основе захваченных данных. Файлы выглядят так: S123456.pdf, S239463.pdf. иногда программное обеспечение OCR «читает» «S» как «5». (файлы в конечном итоге создаются как 5123456.pdf.) Я ищу пакетный файл для среды командной строки Windows, который будет переименовывать только файлы с первым символом, начинающимся с «5», переименовать его в «S» и оставить остальное целое. предпочтительно, чтобы он применялся ко всем подпапкам. Я гуглил, пытался изменить некоторые примеры.. Не могу заставить их работать.. Пожалуйста, помогите!


person user2775813    schedule 13.09.2013    source источник
comment
Вы уверены, что первый символ всегда S?   -  person Qantas 94 Heavy    schedule 13.09.2013


Ответы (2)


Это должно работать - он будет отображать только команды ren на экране, поэтому, если он выглядит нормально, удалите echo

@echo off
setlocal enabledelayedexpansion
for /r %%a in (5*.pdf) do (
set "name=%%~nxa"
echo ren "%%a" "S!name:~1!
)
person foxidrive    schedule 13.09.2013

Простое переименование подстановочного знака на самом деле сделает именно то, что вы хотите:

ren 5*.pdf S*.pdf
person krisku    schedule 13.09.2013
comment
+1 - Действительно работает. Кому интересно, см. Как команда Windows RENAME интерпретирует подстановочные знаки? - person dbenham; 13.09.2013
comment
Он не обрабатывает все папки. - person foxidrive; 13.09.2013