首页 > 编程 > BAT > 正文

批处理备份文件夹和文件后发布文件夹至网站

2020-06-09 14:21:32
字体:
来源:转载
供稿:网友
先将"C:/网站"下对应"D:/工程1"下面的所有文件夹和文件备份到"D:/备份2012-9-1-52647",然后再把"D:/工程1"发布到"C:/网站"。
用法:
backupAndPublish.bat "D:/工程1"
复制代码 代码如下:

@echo off
set SourceDir=%1
set now=%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%%time:~3,2%%time:~6,2%
::参数
set DestDir="C:/网站"
set BackDir="D:/备份%now%"
echo.
echo 正在备份
call:Backup %SourceDir% %DestDir% %BackDir%
echo.
echo 正在发布
call:Publish %SourceDir% %DestDir%
goto :eof
:: 主程序
:Backup
setlocal enabledelayedexpansion
set SourceDir=%~1
set DestDir=%~2
set BackDir=%~3
:: 计算源路径长度
set SourceDirLen=0
set SourceDirStr=%SourceDir%
:next1
if not "%SourceDirStr%"=="" (
set /a SourceDirLen+=1
set "SourceDirStr=%SourceDirStr:~1%"
goto :next1
)
:: 备份
for /r "%SourceDir%" %%i in (*.*) do (
set BackPath=%%~dpi
set BackPath=%BackDir%!BackPath:~%SourceDirLen%!
set DestPath=%%i
set DestPath=%DestDir%!DestPath:~%SourceDirLen%!
set BackFilePath=%%i
set BackFilePath=%BackDir%!BackFilePath:~%SourceDirLen%!
echo !DestPath!
xcopy "!DestPath!" "!BackPath!" /r /y >nul 2>nul
if not exist "!BackFilePath!" (echo 备份复制失败)
)
for /r "%SourceDir%" %%i in (/) do (
set SourcePath=%%i
set SourcePath=!SourcePath:~0,-1!
set BackPath=%BackDir%!SourcePath:~%SourceDirLen%!
md "!BackPath!" >nul 2>nul
)
setlocal disabledelayedexpansion
goto :eof
:: 发布
:Publish
set SourceDir=%1
set DestDir=%2
xcopy %SourceDir% %DestDir% /r /y /i /e
goto :eof

您可能感兴趣的文章:

Tomcat网站发布配置方案详细说明Web Deploy发布网站及常见问题解决方法(图文)安装IIS发布我的第一个网站图文教程MVC4 网站发布(整理+部分问题收集和解决方案)VS2010发布Web网站技术攻略简析ASP.NET网站的创建与发布过程ASP.NE网站发布注意事项简析详解VS2012发布网站步骤ASP.NET MVC3网站创建与发布(1).NET发布网站详细步骤
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表