Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Подправьте скрипт для пакетной распаковки rar архивов (http://forum.oszone.net/showthread.php?t=241085)

Aleksander.Ruban@fb 22-08-2012 00:28 1974361

Подправьте скрипт для пакетной распаковки rar архивов
 
Здравствуйте,

Есть скрипт - для пакетной распаковки rar архивов находящихся в разных папках, распакованные файлы кладутся в туже папку где лежит rar архив.

Вопрос, как сделать так, чтобы при его выполнении в случае, если архив рара имеет формат типа *.part01.rar (*.part02.rar, *.part03.rar и т.д.) происходил пропуск этой папки и переход у другой?

FOR /D /r %%F in ("*") DO (

pushd %CD%
cd %%F
FOR %%X in (*.rar) DO (
"C:\Program Files\7-zip\7z.exe" x "%%X"
)
popd

)

gora 22-08-2012 13:45 1974635

Попробуйте так:
Код:

@Echo Off
SetLocal EnableDelayedExpansion
For /R %%i In (*.rar) Do (
        Set tp=%%~dpi
        Set tp=!tp:~0,-1!
        Set tn=%%~ni
        Set tn=!tn:~-7!
        Set tn=!tn:~0,-2!
        If Not "!tn!"==".part" Echo "C:\Program Files\7-zip\7z.exe" x "%%i" -o"!tp!"
)
Pause

После проверки команду Echo удалить.

Aleksander.Ruban@fb 24-08-2012 22:44 1976489

Все работатет! Спасибо.
Кстати, вот еще один вариант (рубоард - Alex_Piggy)

Цитата:

setlocal enabledelayedexpansion
FOR /D /r %%F in ("*") DO (
pushd "%%F"
FOR %%X in (*.rar) DO (
set "filename=%%~nxX"
set "filename=!filename:~-10,4!!filename:~-4!"
if not "!filename!"=="part.rar" "C:\Program Files\7-zip\7z.exe" x "%%X"
)
popd
)

gora 24-08-2012 23:04 1976501

Цитата:

Цитата Aleksander.Ruban@fb
вот еще один вариант »

Цитата:

Цитата Aleksander.Ruban@fb
FOR /D /r »

Мне не знаком такой синтаксис команды For


Время: 21:31.

Время: 21:31.
© OSzone.net 2001-