Printable Version of Topic
Click here to view this topic in its original format
Forums > Глюкодром > unrar Скрипт


Posted by: Lexus on 08-08-2007, 00:45
Имеется куча папок.

Нужен скрипт для унрара, который проходил бы по папкам и все папки которые содержат сочетание "DVDrip" распаковывал бы в мной указанаю папку.

Пока добился только этого, но этого мало:

1. распаковывается со всех папок.
2. если есть битый архив, то папка пропускается и всё идёт дальше.

FOR /R %%G IN (*.rar) DO unrar.exe e -o- %%G %1

Хотелось бы, чтобы в лог писалось, какая папка была с битым архивом и так же, чтоб папки с "DVDRip" обрабатывались.

Заранее спасибо!

Posted by: FiL on 08-08-2007, 01:00
1. название папки содержит DVDRip или название архива?
Если архива, то

FOR /R %%G IN (*DVDRip*.rar) DO unrar.exe e -o- %%G %1

Если папки и надо распаковывать все архивы в этой папке, то

FOR /D /R %%G IN (*) DO unrar.exe e -o- %%G\*.rar %1

2. a "> c:\unrar.log 2>&1" добавить к комманде не поможет? Потом в логе можно поискать ошибки...


P.S. Я не тестировал, не гарантирую.

Posted by: Lexus on 08-08-2007, 22:45
Протестировал. Стало лучше, но

распаковывает из всех папок, а не из тек, название которых содержит "DVDRip"
и в лог пишется всё что происходит, а не только сообшение о какой-либо ошибке

Posted by: FiL on 09-08-2007, 05:51
ой, звиняй, конечно надо было
FOR /D /R %%G IN (*DVDRip*) DO unrar.exe e -o- %%G\*.rar %1

A log... а проблема потом из лога выкинуть то, что не надо?
Ну и можно вместо "> c:\unrar.log 2>&1" попробовать просто "2> c:\unrar.err" например.

Posted by: Lexus on 09-08-2007, 12:45
Прогнал. Всё пашит. Теперь тока возникла проблема.

Если в той папке что содержит название DVDRip есть ещё подпапки: к примеру:

Die Hard_DVDRip/
CD1/
CD2/
Part3/
и в этих подпапках лежат рары, то скрипт игнорирует их (оно и ясно, так как тока на *DVDRip* натравлен.

Пробывал сделать так:
CODE
FOR /D /R %%A IN (*DVDRip*) DO (
FOR /D /R %%B IN (*) DO (
unrar.exe e -o- %%B\*.rar %1
)
)

Он гад сначало прохид все папки *DVDRIp* , а под конец ещё на раз проходит полностью всё что во всех папках, игнорируя условие *DVDRip*


Posted by: inzerus on 09-08-2007, 14:35
Может так нужно?

CODE
FOR /D /R %%A IN (*DVDRip*) DO (cd %%A&&
FOR /D /R %%B IN (*) DO (
unrar.exe e -o- %%B\*.rar %1
)&&
cd ..
)

Posted by: Lexus on 09-08-2007, 15:47
Выдал: The syntax of the command is incorrect.

UPD: убрал && и всё пошло :)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)