|
本帖最后由 chiannet 于 2018-11-1 12:23 编辑
EXE7ZPROG.zip
(1.38 KB, 下载次数: 8)
- FIND $%~1=,!
- {
- FIND $%~2=,!
- {
- ENVI &TP=%~2
- FDRV &DRVD=%&TP%
- FIND $%&DRVD%=*:,
- {
- FORX * A B D E F G H I J K L M N O P Q R S T U V W Z,&K,IFEX %&K%:,!
- {
- RAMD ImDisk,L%~6,FAT32,%&K%:,ImDisk
- IFEX %&K%:,
- {
- STRL &iLen=%&TP%
- CALC #&iLen=%&iLen%-2
- RSTR &TP=%&iLen%,%&TP%
- ENVI &TP=%&K%:%&TP%
- EXIT FORX
- }
- }
- }!
- {
- IFEX %&DRVD%,!RAMD ImDisk,L%~6,FAT32,%&DRVD%,ImDisk
- }
- REGI $HKCU\SOFTWARE\7-ZIP\PATH,&Z7
- IFEX %&TP%,!PATH %&TP%
- EXEC -wait -hide %&Z7%\7Z.EXE x "%~1" -y -aos -o"%&TP%"
- FIND $%~3=,!
- {
- FEXT &fExt=%~3
- FIND $%&fExt%=ini,
- {
- LOAD "%&TP%\%~3" %~4
- }!
- {
- EXEC %~5 "%&TP%\%~3" %~4
- }
- }
- }
- }
- exit file
- 以下是使用说明:
- 1、参数
- %1:7z压缩包的路径及名称,例如"U:\PETOOLS\my 7z app\xx x.7z",路径文件名中如有空格,用双引号包围。
- %2:释放路径,路径文件名中如有空格,用双引号包围。如以*开头,表示需申请第一个未使用的空盘符创建为内存盘;如以不是以*开头,表示释放到指定的盘符目录,若驱动器不存在,则尝试主动用该盘符创建内存盘。
- %3:释放后,运行的程序(.EXE)或批处理(.cmd或.bat)或载入的.ini名称(相对%2的路径)。
- %4:释放后,运行的程序或批处理的参数,如无需参数,请用" "标识(即双引号包围一个空格)。
- %5:运行的程序或批处理的方式,取四种之一:1、等待执行结束且隐藏执行"-wait -hide";2、等待执行结果"-wait";3、不等待执行结果但隐藏执行"-hide";4、不等待且不隐藏" ";
- %6:需申请创建内存盘的体积,单位是MB,只有%2是*号开头或%2指定的驱动器不存在时,才起作用。
- 2、实例
- 把本文安置为"U:\PETOOLS\MY7ZAPP\EXE7ZPROG.INI";把你的程序打包为7z格式,置于U:\PETOOLS\MY7ZAPP\之下。
- 在"U:\PETOOLS\MYCOMMAND-P.TXT"的适当位置(例如_SUB AFTER与对应_END之间)加一句:
- FORX %CURDIR%\MY7ZAPP\MY7ZAPP1.7Z,&FF,1,
- {
- FNAM &FN=%&FF%
- LINK %DESKTOP%\%&FN%,%WINDIR%\SYSTEM32\PECMD.EXE,LOAD "%CURDIR%\MY7ZAPP\EXE7ZPROG.INI" "%&FF%" "*:\%&FN%" "主程序名.exe" " " "-wait" 256,%CURDIR%\MY7ZAPP\%&FN%.ico,运行%&FN%
- }
- 上面的示例意思是:在PE桌面创建运行MY7ZAPP1.7Z的快捷方式,运行时,解压MY7ZAPP1.7Z到首个未占用的盘符(大小为256MB),无参数、等待、不隐藏方式执行主程序名.exe
复制代码 |
|