批处理备份文件夹和文件后发布文件夹至网站
批处理备份文件夹和文件后发布文件夹至网站
发布时间:2016-12-28 来源:查字典编辑
摘要:先将"C:网站"下对应"D:工程1"下面的所有文件夹和文件备份到"D:备份2012-9-1-52647",然后再把"D:工程1"发布到"C:...

先将"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

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新DOS/BAT学习
热门DOS/BAT学习
脚本专栏子分类