之前是用WinRAR来做的解压,现在用7zip来做解压
7zip的下载地址:https://www.7-zip.org/download.html,直接将下载后的exe文件安装在bat根目录下就可以调用
@echo off
REM 变量延迟,在if中输入的时候不能输入
setlocal EnableDelayedExpansion
@REM 1、停止/启动网站名称,2、网站目录路径,3、是否需要备份(0/1)(1=yes),4、压缩文件路径
set webname=%1%
set websrc=%2%
set isbackup=%3%
set rarsrc=%4%
@REM 日志存储路径
set logname=./log/log-%date:~0,4%%date:~5,2%%date:~8,2%.txt
set appcmd=%windir%\System32\inetsrv\appcmd.exe
if not exist %websrc% (
echo 网站目录路径不存在
goto :finish
)
if exist %rarsrc%\ (
echo 压缩文件不应该是一个文件夹
goto :finish
) else if not exist %rarsrc% (
echo 没有此压缩文件
goto :finish
)
if not exist log md log
if not exist _linshi md _linshi
echo ---------------------start %date% %time%--------------------- >>%logname%
echo 正在停止网站...
%appcmd% stop site !webname! >>%logname% || goto :finish
echo 已成功停止网站
set target=_linshi\%date:~0,4%%date:~5,2%%date:~8,2%
if %time:~0,2% LEQ 9 (
set target=!target!%time:~1,1%%time:~3,2%%time:~6,2%%time:~9,2%
)^
else (
set target=!target!%time:~0,2%%time:~3,2%%time:~6,2%%time:~9,2%
)
set 7ZipDir=64\7-Zip
if "%PROCESSOR_ARCHITECTURE%"=="x86" set 7ZipDir=32\7-Zip
if /i !isbackup! == 1 (
dir /b !websrc!|findstr .* >nul || (echo 网站目录文件夹为空 >>%logname% & echo 网站目录文件夹为空 & goto :websrcnull)
if not exist !target! md !target!
(
echo 正在备份...
"!7ZipDir!\7z.exe" a -ttar !target!\website.tar !websrc!\* >>%logname% && ( echo 已备份成功 & echo 已成功备份在 !target! >>%logname% || echo 备份失败 >>%logname% goto :finish)
) && (
echo 正在删除网站目录...
(
del /s /f /a /q !websrc!\*.* && (
for /f "delims=" %%a in ('dir /ad/b !websrc!') do (rd /q /s !websrc!\"%%a" && echo 成功删除!websrc!\"%%a" || echo !websrc!\"%%a"删除失败)
)
) >>%logname% && echo 网站目录删除成功 || echo 网站目录删除失败
)
)^
else (
echo 正在删除网站目录...
(
del /s /f /a /q !websrc!\*.* && (
for /f "delims=" %%a in ('dir /ad/b !websrc!') do (rd /q /s !websrc!\"%%a" && echo 成功删除!websrc!\"%%a" || echo !websrc!\"%%a"删除失败)
)
) >>%logname% && echo 网站目录删除成功 || echo 网站目录删除失败
)
:websrcnull
echo 正在解压文件...
( start /wait "" "!7ZipDir!\7z.exe" x !rarsrc! -o!websrc! -aoa && echo 已成功解压文件 || echo 解压文件失败 ) >>%logname% && echo 解压成功 || 解压失败
echo 正在启动网站...
%appcmd% start site !webname! >>%logname% || goto :finish
echo 已成功启动网站
:finish
echo ---------------------end %date% %time%--------------------- >>%logname%