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

DARK-Silver666 20-12-2012 20:18 2049926

Копирование и переименование файла по особой маске
 
Хочу создать батник, который бы копировал файлы, лежащие в папке с батником,:
Код:

[Leopard-Raws] Fairy Tail - 01 RAW (TX 1280x720 x264 AAC).ass
[Leopard-Raws] Fairy Tail - 02 RAW (TX 1280x720 x264 AAC).ass
[Leopard-Raws] Fairy Tail - 03 RAW (TX 1280x720 x264 AAC).ass
...
[Leopard-Raws] Fairy Tail - 99 RAW (TX 1280x720 x264 AAC).ass
[Leopard-Raws] Fairy Tail - 100 RAW (TX 1280x720 x264 AAC).ass
[Leopard-Raws] Fairy Tail - 101 RAW (TX 1280x720 x264 AAC).ass
[Leopard-Raws] Fairy Tail - 159 RAW (TX 1280x720 x264 AAC).ass
[Leopard-Raws] Fairy Tail - 160 RAW (TX 1280x720 x264 AAC).ass

в другую папку и сохранял их всех в таком виде:
Код:

Fairy Tail - 001.ass
Fairy Tail - 002.ass
Fairy Tail - 003.ass
...
Fairy Tail - 099.ass
Fairy Tail - 100.ass
Fairy Tail - 101.ass
Fairy Tail - 159.ass
Fairy Tail - 160.ass

Притом после 101 сразу идёт 159, 160(это не опечатка), т.е. надо чтобы в файлах до 99 копировались 29 и 30 символы, а после 100 - 29-31 символы.
Из-за нехватки знаний в написании батников учесть все условия не получилось.
Помогите кто-может. Заранее спасибо.

Foreigner 20-12-2012 20:37 2049936

Код:

@echo off
setlocal

pushd "%~dp0"

for /f "tokens=*" %%i in ('dir /b *.ass') do call:ren "%%i"
goto:eof

:ren
for /f "tokens=5" %%i in (%1) do copy %1 "C:\Some\Folder\Fairy Tail - %%i.ass"


DARK-Silver666 20-12-2012 20:45 2049944

Foreigner, почти верно, только файлы с 1 до 99 имеют вид: Fairy Tail - 01.ass, а надо Fairy Tail - 001.ass. Да и надо копирование, а не переименование, те чтобы исходные файлы не изменялись, а создавался в другой папке бэкап с особым именем.

DARK-Silver666 20-12-2012 21:06 2049964

Foreigner, после правки осталась лишь - "файлы с 1 до 99 имеют вид: Fairy Tail - 01.ass, а надо Fairy Tail - 001.ass". Или такое не возможно?

Foreigner 20-12-2012 21:16 2049974

Код:

@echo off
setlocal

pushd "%~dp0"

for /f "tokens=*" %%i in ('dir /b *.ass') do call:ren "%%i"
goto:eof

:ren
for /f "tokens=5" %%i in (%1) do set "num=00%%i"

copy %1 "C:\Some\Folder\Fairy Tail - %num:~-3%.ass"


DARK-Silver666 20-12-2012 21:22 2049982

Foreigner, спасибо, очень выручил.


Время: 10:59.

Время: 10:59.
© OSzone.net 2001-