本脚本实现自动备份到远程,使用zip package更新站点
使用方法:以WebUpdata.bat放在e:\hanxq目录为例。
1.将更新压缩包放在e:\hanxq目录下,更新包中文件必须为网站根目录下文件或文件夹。
2.运行输入cmd 回车
3.输入e:
4.cd e:\hanxq
5.WebUpdate.bat
6.提示Please Input WebSiteName: 输入站点前部分即可。如要更新的站点为www.xqhan.com,直接输入www回车即可

注:在此不能直接运行WebUpdata.bat脚本文件,否则会报错,待解决。

脚本详细说明:
1.站点备份:按照更新包中的文件及文件夹名称,拼凑地址后备份。
如:更新包结构:有2个目录bin与maps;2个文件web.config default.aspx,脚本将备份2个目录下的所有子目录及文件,以及根目录下的这2个文件。
2.站点更新:直接用更新包文件覆盖到站点根目录下。

-------------------------------------------------
@echo off
::Input WebSiteName and Unzip Site Update Package.
set /p WebSiteName="Please Input WebSiteName:"
set ziptool="C:\Program Files (x86)\HaoZip\HaoZipC.exe"
%ziptool% x *.zip -y -o./%WebSiteName%.xqhan.com

::Get WebSitePath Save to File.
find "%WebSiteName%.xqhan.com" GetWebsiteDirectory.txt|find "%WebSiteName%" >WebSitePath.txt
for /f "tokens=2 delims= " %%i in (WebSitePath.txt) do (
set WebSitePath=%%i
echo %WebSitePath%>WebSitePath.txt
)

::Get WebSite Dir_File List.
dir /b /ad %WebSiteName%.xqhan.com >WebSiteDir.txt
dir /b /a-d %WebSiteName%.xqhan.com >WebSiteFile.txt

::Create WebSite Back Dir in 172.16.34.235.
set MkdirTime=%DATE:~0,4%.%DATE:~5,2%.%DATE:~8,2%_%TIME:~0,2%.%TIME:~3,2%
mkdir \\172.16.34.235\update95\%WebSiteName%.xqhan.com\%MkdirTime%

::WebSiteDir Back to 172.16.34.235.
for /f %%j in (WebSiteDir.txt) do (
set /p WebSiteDir=<WebSitePath.txt
echo %WebSiteDir%\%%j>temp.txt
xcopy /e %WebSiteDir%\%%j \\172.16.34.235\update95\%WebSiteName%.xqhan.com\%MkdirTime%\%%j\
)

::WebSiteFile Back to 172.16.34.235.
for /f %%j in (WebSiteFile.txt) do (
set /p WebSiteDir=<WebSitePath.txt
echo %WebSiteDir%\%%j>temp.txt
copy /y %WebSiteDir%\%%j \\172.16.34.235\update95\%WebSiteName%.xqhan.com\%MkdirTime%\%%j
)


::Update WebSiteFile.
xcopy /e /y %WebSiteName%.xqhan.com %WebSiteDir%\

------------------------------------------------

在以上批处理中,使用到了GetWebsiteDirectory.txt这个文件,在此把获取GetWeb该文件的vbs脚本提供给大家,将以下内容保存为.vbs文件执行即可。

------------------------------------------------------------

Set ObjService=GetObject("IIS://172.16.34.235/W3SVC")
For Each obj3w In objservice
If IsNumeric(obj3w.Name) Then
sServerName=Obj3w.ServerComment
Set webSite = GetObject("IIS://172.16.34.235/W3SVC/" & obj3w.Name & "/Root")
ListAllWeb = ListAllWeb & obj3w.ServerComment & String(35-Len(obj3w.ServerComment)," ") & webSite.Path &vbCrLf
End If
Next
WScript.Echo ListAllWeb
createobject("scripting.filesystemobject").createtextfile("./GetWebsiteDirectory.txt",true).write ListAllWeb
Set ObjService=Nothing
WScript.Quit
--------------------------------------------------------------