Перепаковка 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
|