@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