手机
当前位置:查字典教程网 >脚本专栏 >DOS/BAT >批处理备份文件夹和文件后发布文件夹至网站
批处理备份文件夹和文件后发布文件夹至网站
摘要:先将"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

【批处理备份文件夹和文件后发布文件夹至网站】相关文章:

用批处理重命名文本文件名的代码

用批处理实现将文件以数字重命名的代码

用批处理实现文件备份器V2.3

在批处理文件或配置文件中加入注释

dos之bat批处理文件语法介绍

批处理应用根据文件内容进行重命名操作

DOS批处理中%cd%和%~dp0的异同分析

批处理修改本地域名解析

bat如何延时删除指定文件夹中的文件

批处理利用HOSTS文件(屏蔽,加速)网站的代码

精品推荐
分类导航