灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2800回复:0

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

楼主#
更多 发布于:2013-05-28 10:15
使用批处理备份文件夹和文件后再把备份的文件夹发布出去(例如:网站),对批处理感兴趣的朋友可以参考下啊,或许对你学习批处理有所帮助

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

喜欢0 评分0
游客

返回顶部