@ECHO OFF
COLOR 2F
TITLE 批量文件 CAB 打包工具
Set TF=files.txt
CLS
Echo.
Echo ╭════════════════╮
Echo ║ ║
Echo ╭═══┤ 批量文件 CAB 打包工具 ├═══╮
Echo ║ ║ ║ ║
Echo ║ ╰═════════════════╯ ║
Echo ║ 1. 待压缩文件的父目录需与本程序在同一路径下; ║
Echo ║ 2. 待压缩文件所在路径(包括父路径)不许有空格。 ║
Echo ║ 3. 如果你输入的路径或文件名中有空格, ║
Echo ║ 请在外边用上引号 ║
Echo ╰══════════════════════════╯
Echo.
Echo 请输入需压缩的文件所在的目录名,如 Files
Echo.
Set Ds=
Set /P Ds=请输入:
Echo.
Echo 请输入需要保存的压缩包文件名,如 Files.cab
Echo.
Set FCab=
Set /P FCab=请输入:
CLS
Echo.
Echo ╭════════════════╮
Echo ║ ║
Echo ╭═══┤ 批量文件 CAB 打包工具 ├═══╮
Echo ║ ║ ║ ║
Echo ║ ╰═════════════════╯ ║
Echo ║ ║
Echo ║ ║
Echo ║ 压缩中...... ║
Echo ║ ║
Echo ╰══════════════════════════╯
Echo.
If Exist "%TF%" Del "%TF%" >NUL
For %%i In (%Ds%) Do Set FP=%%~dpi
SETLOCAL ENABLEDELAYEDEXPANSION
rem 启用延迟的环境变量
For /f "delims=" %%i In ('dir %Ds% /s /b /a-d') Do (
Set str=%%i
Set "str=!str:%FP%%Ds%\=!"
rem %PATH:str1=str2%这个操作就是把变量%PATH%的里的str1全部用str2替换
rem 在延迟的环境变量中用!str!来表示%str%
>>%TF% Echo "%%i" "!str!"
)
ENDLOCAL
MAKECAB /D CompressionType=LZX /D CompressionMemory=21 /D MaxDiskSize=CDROM /D Cabinet=On /D Compress=On /D FolderSizeThreshold=5000000 /D DiskDirectoryTemplate=.\ /D CabinetNameTemplate=%FCab% /F %TF%
@del /q files.txt
@del /q setup.inf
@del /q setup.rpt
@echo 压缩完成,按任意键退出...&pause > nul
2020-07-23 05:29
更新于 2020-07-23 05:29
16 浏览