home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 11 Util
/
11-Util.zip
/
oslite11.zip
/
oslite.btm
(
.txt
)
< prev
next >
Wrap
4DOS Compressed Batch-To-Memory File
|
1994-09-20
|
3KB
|
190 lines
@echo off
on break goto doquit
if NOT "%@EVAL[2+2]"=="4" goto not4dos
if "%OSLITE"=="" goto novar
echo Oslite V1.1 by Enrico Demarin *FREEWARE*
set TMP1=%@UNIQUE[%OSLITE]
set TMP2=%@UNIQUE[%OSLITE]
set CRATIO=-1
set LTPAT=%@SEARCH["lthdr.cmd"]
set NOBAK=0
set FULLPAT=0
set NOEAS=0
unset /Q ORG2
unset /Q ORG1
if "%#"=="0" goto sum
gosub scanopt
if NOT EXIST %LTPAT goto err4
SET INFILE=%@PATH[%ORG1]%@NAME[%ORG1].exe
if NOT EXIST %INFILE goto err1
if "%ORG2"=="" goto nohd3
SET OUTFILE=%@PATH[%ORG2]%@NAME[%ORG2].cmd
goto hdone3
:nohd3
SET OUTFILE=%@PATH[%INFILE]%@NAME[%INFILE].cmd
:hdone3
:vai
copy %INFILE %TMP1 >nul
Echo Compressing %INFILE...
gzip %CRATIOq %TMP1
if NOT ERRORLEVEL==0 gpt erro4
echo Creating CMD file...
set FH=%@FILEOPEN[%TMP2,write]
if "%FH"=="-1" goto erro3
set RES=%@FILEWRITE[%FH,@echo off]
if "%RES"=="-1" goto erro3
set RES=%@FILEWRITE[%FH,SET FULLPAT=%FULLPAT]
if "%RES"=="-1" goto erro3
if "%FULLPAT"=="0" goto nofpat
set RES=%@FILEWRITE[%FH,SET ORIGNAME=%@FULL[%INFILE]]
goto else
:nofpat
set RES=%@FILEWRITE[%FH,SET ORIGNAME=%INFILE]
:else
if "%RES"=="-1" goto erro3
set FLINES=%@EVAL[5+%@LINES[%LTPAT]]
set RES=%@FILEWRITE[%FH,SET LITSIZE=%FLINES]
if "%RES"=="-1" goto erro3
set RES=%@FILECLOSE[%FH]
if "%RES"=="-1" goto erro3
copy /b %TMP2+%LTPAT+%TMP1.gz %OUTFILE >nul
if NOT EXIST %OUTFILE goto erro3
if "%NOEAS"=="1" goto doren
:doeas
echo Storing EAs...
if NOT EXIST %TMP2 goto eacopy
del %TMP2 >nul
:eacopy
eautil %INFILE %TMP2 /P /S
if NOT EXIST %TMP2 goto doren
eautil %OUTFILE %TMP2 /O /J
:doren
if "%NOBAK"=="1" goto dodel
copy %INFILE %@PATH[%INFILE]%@NAME[%INFILE].bak >nul
if NOT ERRORLEVEL==0 goto erro2
:dodel
echo Done. (EXE/CMD bytes=%@FILESIZE[%INFILE,b],%@FILESIZE[%OUTFILE,b])
del %INFILE >nul
goto doquit
:erro3
Echo Error: Couldn't create CMD file !
goto doquit
:erro2
Echo Error: Couldn't create %INFILE.BAK !
goto doquit
:erro4
Echo Error: Gzip returned a bad status.
if NOT EXIST %OUTFILE goto doquit
del %OUTFILE >nul
goto doquit
:err1
echo Error: Invalid or missing source file name.
goto sum
:err4
echo Error: Couldn't find "lthdr.cmd" !
:sum
echo Syntax : oslite source [destination] -0...9 [-NOBAK -FULLPAT -NOEAS]
echo Purpose : compress an exe file to a cmd file.
echo Parameters:
echo source : exe file to compress
echo destination : cmd file to create (optional)
echo -0...9 : compression ratio to use, 1 faster, 9 best
echo -NOBAK : don't make a backup of the old .EXE file
echo -FULLPAT : .CMD will decompress to original exe path
echo (by default, .CMD will decompress into %OSLITE)
echo -NOEAS : don't copy EAS to .CMD file
echo Requirements:
echo Oslite can work ONLY on a HPFS drive. 4OS2 2.0 or higher must
echo be installed. And GZIP.EXE,SKIP.EXE,LTHDR.CMD and EAUTIL must be in
echo the path.
:doquit
if NOT EXIST %TMP2 goto end0
del %TMP2 >nul
:end0
if NOT EXIST %TMP1 goto end1
del %TMP1 >nul
:end1
if NOT EXIST %TMP1.gz goto end2
del %TMP1.gz >nul
:end2
quit
:not4dos
echo This procedure requires 4OS2 2.00 or higher.
quit
:novar
echo OSLITE environment not defined.
quit
:scanopt
SET COUNT=%#
DO WHILE "%COUNT" != "0"
iff "%1"=="-1" then
SET CRATIO=%1
elseiff "%1"=="-2" then
SET CRATIO=%1
elseiff "%1"=="-3" then
SET CRATIO=%1
elseiff "%1"=="-4" then
SET CRATIO=%1
elseiff "%1"=="-5" then
SET CRATIO=%1
elseiff "%1"=="-6" then
SET CRATIO=%1
elseiff "%1"=="-7" then
SET CRATIO=%1
elseiff "%1"=="-8" then
SET CRATIO=%1
elseiff "%1"=="-9" then
SET CRATIO=%1
elseiff "%@UPPER[%1]"=="-NOBAK" then
SET NOBAK=1
elseiff "%@UPPER[%1]"=="-FULLPAT" then
SET FULLPAT=1
elseiff "%@UPPER[%1]"=="-NOEAS" then
SET NOEAS=1
elseiff "%@SUBSTR[%1,0,1]"=="-" then
echo Invalid option : %1
elseiff "%ORG1"=="" then
SET ORG1=%1
elseiff "%ORG2"=="" then
SET ORG2=%1
else
echo Extra argument %1 ignored.
endiff
shift 1
SET COUNT=%@EVAL[%COUNT-1]
ENDDO
return