java 解压cab文件_[原创]一个小小的Cab文件打包工具

本文介绍了一个由老毛桃制作的CAB文件打包工具,该工具通过命令行方式调用makecab.exe来实现文件的CAB打包。支持批量文件打包为单一CAB文件或多个独立CAB文件,同时提供了详细的使用说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# re: [原创]一个小小的Cab文件打包工具

2008-08-04 16:45

REALPLUG

谢谢了! 不过我还有一个CAB打包工具,是老毛桃制作的,也是调用makecab.exe来打包的,不过使用的是命令行,现在也给你分享其源码。如下: (注:将下列所有的字复制到记事本并保存为CMD即可。)

@Echo Off

Set TT=老毛桃制作的批量文件 CAB 打包工具

Set TS=如果你输入的路径或文件名中有空格,请在外边用上引号

COLOR 2F

TITLE %TT%

Set ERR=

Set C0=MAKECAB /D CompressionType=LZX /D CompressionMemory=21 /D MaxDiskSize=CDROM /D Cabinet=On /D Compress=On /D FolderSizeThreshold=5000000

:BEGIN

CLS

Echo.

Echo        ╭══════════════════╮

Echo        ║                  ║

Echo    ╭═══┤ %TT%! ├═══╮

Echo    ║   ║                  ║   ║

Echo    ║   ╰══════════════════╯   ║

Echo    ║                          ║

Echo    ║   您是需要将批量文件制作成一个压缩包呢?     ║

Echo    ║   还是想生成 N 个 CAB 格式的单独压缩文件?    ║

Echo    ║                          ║

Echo    ║    [1] 将批量文件制作成一个压缩包        ║

Echo    ║    [2] 将每个文件制作成单独压缩文件       ║

Echo    ║    [3] 将单个文件制作成单独压缩文件       ║

Echo    ║    [Q] 退出                   ║

Echo    ║                          ║

Echo    ╟──────────────────────────╢

Echo    ║ 注:1. 待压缩文件的父目录需与本程序在同一路径下; ║

Echo    ║   2. 待压缩文件所在路径(包括父路径)不许有空格。 ║

Echo    ╟══════════════════════════╢

Echo    ║ 版权所有:老毛桃    仅供网友们交流,翻版不究 ║

Echo    ╰──────────────────────────╯

Echo.

Set Choice=

Set /P Choice=    请选择要进行的操作(1/2/3/Q),然后按回车:

If Not '%Choice%'=='' SET Choice=%Choice:~0,1%

If /I '%Choice%'=='1' GOTO LOOPA

If /I '%Choice%'=='2' GOTO LOOPA

If /I '%Choice%'=='3' GOTO LOOPD

If /I '%Choice%'=='Q' EXIT

Goto BEGIN

:LOOPA

If /I '%Choice%'=='1' (

TITLE %TT% - 制作成一个压缩包

)

If /I '%Choice%'=='2' (

TITLE %TT% - 制作成多个单独压缩文件

)

If "%Err%"=="" (

CLS

)

Echo 请输入需压缩的文件所在的目录名,如 Files

Echo 注意:1.%TS%

Echo.

Set Ds=

Set /P Ds=请输入:

If %Ds%A==A (

Set Err=

Goto LOOPA

)

If Not Exist %Ds% (

Set Err=1

Echo.

CLS

Echo 您所输入的路径不存在,请重新输入

Echo.

Goto LOOPA

)

If /I '%Choice%'=='1' GOTO LOOPB

Goto LOOPC

:LOOPB

CLS

Echo 请输入需要保存的压缩包文件名,如 Drive.CAB

Echo 注意:1.%TS%

Echo.

Set FCab=

Set /P FCab=请输入:

If %FCab%A==A Goto LOOPB

Set C=%C0% /D DiskDirectoryTemplate=.\ /D CabinetNameTemplate=%FCab%

Set TF=%TEMP%\Files.tmp

If Exist "%TF%" Del "%TF%" >NUL

For %%i In (%Ds%) Do Set FP=%%~dpi

SETLOCAL ENABLEDELAYEDEXPANSION

For /f "delims=" %%i In ('dir %Ds% /s /b /a-d') Do (

Set str=%%i

Set "str=!str:%FP%%Ds%\=!"

>>%TF% Echo "%%i" "!str!"

)

ENDLOCAL

%C% /F %TF%

Del /F /S /Q "%TF%" SETUP.INF SETUP.RPT >NUL

Goto Exit

:LOOPC

CLS

Echo 请输入需要保存的 CAB 格式文件所在路径,比如 OutFile

Echo 如果此路径不存在,将在当前目录下自动创建。

Echo 注意:1.%TS%

Echo.

Set OUT=

Set /P OUT=请输入:

If %OUT%A==A Goto LOOPC

For %%i In (%Ds%) Do Set FP=%%~dpi

SETLOCAL ENABLEDELAYEDEXPANSION

For /f "delims=" %%i In ('dir %Ds% /s /b /a-d') Do (

Set str=%%~dpi

Set str=!str:%FP%%Ds%\=!

Set str=%OUT%\!str!

Set str=!str:~0,-1!

%C0% /L "!str!" "%%i"

)

ENDLOCAL

Goto Exit

:LOOPD

TITLE %TT% - 只压缩一个文件

If "%Err%"=="" (

CLS

)

Echo 请输入需要压缩的文件所在路径,比如 Driver\NV4_Disp.SYS

Echo 其中 Driver 与本程序在同一文件夹中

Echo 您也可以选择按 TAB 键快速输入路径和文件名称,完成后按回车确认

Echo.

Echo 注意:1.%TS%

Echo.

Set FileR=

Set /P FileR=请输入:

If %FileR%A==A (

CLS

Goto LOOPD

)

If Not Exist %FileR% (

Set Err=1

Echo.

CLS

Echo 您所输入的文件路径不存在,请重新输入

Echo.

Goto LOOPD

)

Goto LOOPE

:LOOPE

CLS

Echo 请输入需要保存的压缩文件路径,比如 Driver\NV4_Disp.CAB

Echo 如果不输入文件路径,则以 NV4_Disp.SY_ 的形式保存在本程序所在路径

Echo.

Echo 注意:1.如果尝试输入一个不存在的路径信息,压缩程序会出错!

Echo    2.%TS%

Echo.

Set FileT=

Set /P FileT=请输入:

%C0% %FileR% %FileT%

Goto Exit

:Exit

Echo.

Echo.

Echo.

Echo 您需要的操作已经全部完成,请核查. . .

Echo.

Echo 老毛桃感谢您的使用,如果您有什么好的建议,请 QQ 我!

Echo.

Echo.

Echo 请按任意键退出程序. . .

PAUSE >NUL  回复  更多评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值