Alter.Org.UA
 << Back Home EN en   Donate Donate

Перепаковка RAR->TGZ в фаре (через User Menu)



Мелкий макрос и bat-файл для перепаковки RAR-архивов в TGZ из UserMenu Far'a. Для его работы требуется, чтобы в переменной окружения PATH были прописаны пути к rar.exe, tar.exe и gzip.exe, а также утилита deltree.exe.

В отличие от предыдущей версии нормально сделана проверка ошибок. А произошло это после того, как я случайно вызвал перепаковку стоя на ".." ;) В результате грохнулось все содержимое каталога. Благо EasyRecovery под рукой есть...

К сожалению, в Far'е нельзя использовать ветвления и переходы в макросах. Пришлось выносить функциональность в отдельный файл.

код макроса предельно прост:

rar2tgz.bat "!" "!.rar" "!.tar" "!.tgz"

код bat-файла не намного сложнее:

@rem %1 - "!", %2 - "!.!", %3 - "!.tar", %4 - "!.tgz"
@echo repack %2

@rem build tmp directory
if exist $tmp_repack_rar2tgz.tmp goto quit
mkdir $tmp_repack_rar2tgz.tmp
if not exist $tmp_repack_rar2tgz.tmp goto quit
copy %2 $tmp_repack_rar2tgz.tmp
cd $tmp_repack_rar2tgz.tmp

@rem check for ".." and "."
if exist %1 goto quit2

mkdir %1
if not errorlevel 0 goto quit2
if not exist %2 goto quit2
rar.exe x %2 %1
if not errorlevel 0 goto quit2
tar.exe -f %3 -c %1
gzip.exe -9 %3 -c > %4
copy %4 ..

:quit2

cd ..
deltree.exe $tmp_repack_rar2tgz.tmp

:quit

Для установки можно импортировать rar-tgz.reg из архива (rar-tgz_v2.rar/tgz (499 bytes/556 bytes)). В архиве также содержится rar2tgz.bat, который и выполняет всю работу. Перед импортом rar-tgz.reg необходимо поправить в названии ключа Item666 число 666 на первое неиспользуемое значение (см. Registry, HKEY_CURRENT_USER\Software\Far\UserMenu\MainMenu).

2004.02.05

Вот старая версия мелкого макроса (никаких проверок):

mkdir "!"
rar.exe x "!.!" "!"
tar.exe -f "!.tar" -c "!"
gzip.exe -9 "!.tar" -c > "!.tgz"
del "!.tar"
deltree.exe "!\!"

Для установки можно импортировать rar-tgz.reg, предварительно поправив в названии ключа Item666 число 666 на первое неиспользуемое значение (см. Registry, HKEY_CURRENT_USER\Software\Far\UserMenu\MainMenu).


2003.10.21


Автор: Alter (Александр А. Телятников) Сервер: Apache+PHP под FBSD © 2002-2024