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

Майклс 14-03-2010 15:45 1368411

Перемещение файлов, содержащих дату в названии.
 
Добрый день. Подскажите текст батника для задачи:
Имеется каталог с группой файлов с именами вида <постоянная часть>_<дата>nnn.jpg,
где дата определяется в формате ггггммдд, а после нее идет номер nnnn. Необходимо из этого каталога, где содержаться файлы за несколько месяцев переместить файлы в раздельные каталоги Месяц\День месяца (от 1 до 31).
Можно несколько упростить и не выделять отдельно месяц, но хотя бы рассортировать файлы по папкам с отельными днями, например:
<постоянная часть>_20100301nnn.jpg в папку "1"
<постоянная часть>_20100312nnn.jpg, в папку "12"
и т.д.
Благодарю заранее.

amel27 14-03-2010 16:29 1368445

Код:

@Echo Off

Set NAME=постоянная_часть
Set ROOT=C:\TEST

PushD %ROOT%
For %%i In (%NAME%_2010???????.jpg) Do Set $N=%%i& Call :FILE_MOVE
Exit /B

:FILE_MOVE
 If Not Exist %$N:~-11,2%\%$N:~-9,2%\ MD %$N:~-11,2%\%$N:~-9,2%
 Move  "%$N%" %$N:~-11,2%\%$N:~-9,2%\
GoTo :EOF


Майклс 16-03-2010 01:37 1369589

Спасибо, работает!
я так понял, что 9,2 и 11, 2 - это расстояние от конца названия файла? пришлось немного модифицировать, вопросов в названии было больше =)
хотелось бы еще узнать, как можно переименовать перемещаемые файлы так, чтобы удалить начальную часть (%NAME%) и разделить оставшиеся части названия символами, например
_m20100315234038 ---> 2010-03-15_(23.40.38)

amel27 17-03-2010 16:46 1370819

Цитата:

Цитата Майклс
это расстояние от конца названия файла? »

именно так, для справки: "SET /?"

Цитата:

Цитата Майклс
например
_m20100315234038 ---> 2010-03-15_(23.40.38) »

Код:

@Echo Off

Set $V=_m20100315234038
Set $R=%$V:~2,4%-%$V:~6,2%-%$V:~8,2%_(%$V:~10,2%.%$V:~12,2%.%$V:~14,2%)

Echo.
Echo %$V%
Echo %$R%
Echo.

PAUSE


Huxlay 27-07-2010 15:34 1461528

Dyskusje są zawsze głównym źródłem rzetelnych informacji oraz zapewnienie komfortowych wyniki, można uzyskać natychmiastowy i wiarygodnych informacji, które z pewnością pomogą Ci w każdej dziedzinie swojego zainteresowania.


Время: 01:27.

Время: 01:27.
© OSzone.net 2001-