华域联盟 DOS/BAT 批处理备份文件夹和文件后发布文件夹至网站

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

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


您可能感兴趣的文章:

本文由 华域联盟 原创撰写:华域联盟 » 批处理备份文件夹和文件后发布文件夹至网站

转载请保留出处和原文链接:https://www.cnhackhy.com/17369.htm

本文来自网络,不代表华域联盟立场,转载请注明出处。

作者: sterben

发表回复

联系我们

联系我们

2551209778

在线咨询: QQ交谈

邮箱: [email protected]

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部