Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Переименование файла исходя из его названия (http://forum.oszone.net/showthread.php?t=242254)

Sta1917 08-09-2012 15:30 1985157

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

Foreigner 08-09-2012 16:23 1985165

Без расширения, просто "№ Filename"?
Код:

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


Sta1917 08-09-2012 21:10 1985274

Расширение *.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 1985276

Цитата:

Цитата Sta1917
Можно сделать чтобы обрабатывал имена типа: »

Код:

@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 1985288

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

Foreigner 08-09-2012 22:13 1985306

Цитата:

Цитата Sta1917
иначе получается 53.pdf.pdf »

Замени во втором for: ...in ("%%i") do... на ...in ("%%~ni") do...

Sta1917 09-09-2012 00:04 1985354

Спасибо, то что надо.


Время: 07:32.

Время: 07:32.
© OSzone.net 2001-