Компьютерный форум 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=274037)

llxmanll 15-12-2013 15:30 2272667

Рекурсивное переименование файлов.
 
Здравствуйте. Эта тему уже находилась поиском. Но ответа на свою проблему не нашёл. Нужно переименовать файлы *.log, добавить дату, убрать время, в каталоге и подкаталогах. Некоторыми потугами родилось такое:
Код:

for /R d:\backups\log %%N IN (end.log) DO set NAME=%%~tN
set DONE=%NAME:~0,-6%
ren %%N %DONE%.log
pause

И оно работает без параметра /R, но не с ним, такое чувство, что не присваивается значение переменной DONE. В результате переименования остаются одни расширения файлов. Подскажите пожалуйста в чём ошибка и каком именно месте выпрямлять руки.

Foreigner 15-12-2013 15:51 2272676

Код:

@echo off

for /f "tokens=*" %%i in ('dir /b /s /a d:\backups\log\end.log') do call:ren "%%i" %%~ti
goto:eof

:ren
ren %1 %2%~x1


llxmanll 15-12-2013 16:52 2272708

Работает, спасибо огромное.
Если не сложно, маленький вопрос. Почему
Код:

%%~ti
выделяется с временем изменения файла.
а в
Код:

%2%~x1
его уже нет? Не вкурю никак...

Foreigner 15-12-2013 17:00 2272713

Цитата:

Цитата llxmanll
его уже нет? »

Потому, что время было бы %3 =))


Время: 20:26.

Время: 20:26.
© OSzone.net 2001-