PDA

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


DARK-Silver666
20-12-2012, 20:18
Хочу создать батник, который бы копировал файлы, лежащие в папке с батником,:
[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
@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
Foreigner, почти верно, только файлы с 1 до 99 имеют вид: Fairy Tail - 01.ass, а надо Fairy Tail - 001.ass. Да и надо копирование, а не переименование, те чтобы исходные файлы не изменялись, а создавался в другой папке бэкап с особым именем.

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

Foreigner
20-12-2012, 21:16
@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
Foreigner, спасибо, очень выручил.




© OSzone.net 2001-2012