PDA

Показать полную графическую версию : [решено] Переименование файла исходя из его названия


Sta1917
08-09-2012, 15:30
Доброго времени суток, прошу прощения если решение уже было. Поиском не нашел.
В папке есть файлы вида 1 Filename, 2 Filename, ... 53 Filename как их переименовать, чтобы остался только № без пробела? Пробовал четез Total Commander, но он оставляет либо первый знак, либо с пробелом.

Foreigner
08-09-2012, 16:23
Без расширения, просто "№ Filename"?

@echo off
for /f "tokens=1,2" %%i in ('dir /b') do ren "%%i %%j" "%%i"

Sta1917
08-09-2012, 21:10
Расширение *.pdf, т.е. должно получится:
@echo off for /f "tokens=1,2" %%i in ('dir /b *.pdf') do ren "%%i %%j" "%%i.pdf"
правильно?

Работает но только с простыми именами. Можно сделать чтобы обрабатывал имена типа:
53 лист - Чертеж АР-12.pdf ?

Foreigner
08-09-2012, 21:21
Можно сделать чтобы обрабатывал имена типа: »

@echo off

for /f "tokens=*" %%i in ('dir /b *.pdf') do (

for /f "tokens=1" %%j in ("%%i") do ren "%%i" %%j%%~xi

)

Sta1917
08-09-2012, 21:40
Работает, но не обрабатывает длинное тире —, остальные символы кушает.
Последнее: можно сделать, чтобы файл не обрабатывался повторно, если в названии только номер, иначе получается 53.pdf.pdf ?

Foreigner
08-09-2012, 22:13
иначе получается 53.pdf.pdf »
Замени во втором for: ...in ("%%i") do... на ...in ("%%~ni") do...

Sta1917
09-09-2012, 00:04
Спасибо, то что надо.




© OSzone.net 2001-2012