批处理脚本:打包制定文件夹中的所有子文件夹

@echo off
echo 文件夹子目录打包脚本 V1.0.0.20210106

setlocal enabledelayedexpansion

set sDstDirPath=%1
SET sDstDirPath="%sDstDirPath%"
SET sDstDirPath=%sDstDirPath:"=%
rem echo sDstDirPath=%sDstDirPath%

if "%sDstDirPath%"=="" (
	echo 目标文件夹路径为空
	echo =========================
	echo 调用格式为CompressDir2Zip 目标文件夹路径 压缩程序路径
	echo 压缩程序路径可以为空
	exit /b 1
)

set sZipExePath=%2
SET sZipExePath="%sZipExePath%"
SET sZipExePath=%sZipExePath:"=%
rem echo sZipExePath=%sZipExePath%

if "%sZipExePath%"=="" (
	set sZipExePath=C:\Program Files\7-Zip\7z.exe
)

if not exist "%sZipExePath%" (
	echo 压缩程序%sZipExePath%不存在
	exit /b 2
)

pushd %~dp0

cd /d "%sDstDirPath%"
echo 即将打包下列文件夹
dir /B /A:D
echo ========打包开始==========
for /f "delims=" %%i in ('dir /B /A:D') do (
	set sDirName=%%i
	rem echo sDirName=!sDirName!
	set sZipName=!sDirName!.zip
	rem echo sZipName=!sZipName!
	if exist "!sZipName!" (del /Q "!sZipName!") >nul || goto :error
	"%sZipExePath%" a "!sZipName!" "!sDirName!" >nul || goto :error
	echo 已将%%i文件夹的打包
)

goto :success
echo ========打包结束==========
endlocal

:error
popd
echo Failed with error #%errorlevel%.
exit /b %errorlevel%

:success
popd
exit /b 0

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值