知识屋:更实用的电脑技术知识网站
所在位置:首页 > 编程技术 > 批处理

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

发布时间:2013-02-03 13:53:26作者:知识屋

先将"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 
(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜