Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Обмен кнопками 
Author Message
Serge Yolkin



PostPosted: Sun Jul 18, 2010 22:28    Post subject: Reply with quote

Вот командник для UPX, которым я пользуюсь:
Code:

@Echo Off
SetLocal
Set #I=
Set #J=
Set #P=%~2
If /i _%1 EQU _/c (Set #J=COMPRESS)
If /i _%1 EQU _/d (Set #J=DECOMPRESS)
If Not Defined #J Exit

:SHIFTPARAM
If _%CD:~-1,1% EQU _\ (Set #P=%CD%%#P%) Else (Set #P=%CD%\%#P%)
If _%#P:~-1,1%_ EQU _ _ (Set #P=%#P:~0,-1%)
If _%#P:~-1,1%_ EQU _\_ (Set #P=%#P:~0,-1%)
Call :%#J% "%#P%"
Shift
Set #P=%~2
If Defined #P GoTo :SHIFTPARAM
Exit

:COMPRESS
Title Compress Applications
Set #P=%COMMANDER_PATH%\UniExtract\bin\Upx.exe
If Not Exist "%~1\*.*" GoTo :COMPRESSFILE
SetLocal EnableDelayedExpansion
For /r %1 %%i In (*.exe,*.dll,*.bin,*.bpl,*.irc,*.pyd,*.wcx,*.wfx,*.wlx,*.pfl,*.ax,*.sfx) Do (
   "%#P%" --best --compress-icons=0 --brute --crp-ms=999999 -k "%%~fi"
   "%#P%" -t "%%~fi"
   Set #I=%%~fi
   If !ERRORLEVEL! NEQ 0 (
      Move /y "!#I:~0,-1!^~" "%%~fi") Else (Del /q "!#I:~0,-1!^~"))
Exit /b
:COMPRESSFILE
For %%i In (exe,dll,bin,bpl,irc,pyd,wcx,wfx,wlx,pfl,ax,sfx) Do (If /i .%~x1==..%%i Set #I=!)
If Not Defined #I Exit /b
"%#P%" --best --compress-icons=0 --brute --crp-ms=999999 -k %1
"%#P%" -t %1
Set #I=%~1
If %ERRORLEVEL% NEQ 0 (Move /y "%#I:~0,-1%~" "%#I%") Else (Del /q "%#I:~0,-1%~")
Exit /b

:DECOMPRESS
Title DeCompress Applications
If Not Exist "%~1\*.*" GoTo :DECOMPRESSFILE
For /r %1 %%i In (*.exe,*.dll,*.bin,*.bpl,*.irc,*.pyd,*.wcx,*.wfx,*.wlx,*.pfl,*.ax,*.sfx) Do (
   "%COMMANDER_PATH%\UniExtract\bin\Upx.exe" -d "%%~fi")
Exit /b
:DECOMPRESSFILE
For %%i In (exe,dll,bin,bpl,irc,pyd,wcx,wfx,wlx,pfl,ax,sfx) Do (If /i .%~x1==..%%i Set #I=!)
If Not Defined #I Exit /b
"%COMMANDER_PATH%\UniExtract\bin\Upx.exe" -d %1
Exit /b
Сергей Ёлкин (2005 - 2009)


Первый ключ - или /c - compress, или /d - decompress, указывается, как правильно было сказано, в строке команды, а не в строке параметров. Имена файлов/папок передаются с помощью %S, тогда логика такая:
- файл под курсором, если нет выбранных
- файлы в папке под курсором с рекурсией
- выбранные файлы и в выбранных папках с рекурсией
Список обрабатываемых расширений см. в командах For
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group