vbs實(shí)現(xiàn)只復(fù)制比目標(biāo)文件更新的文件
更新時(shí)間:2014年04月21日 21:54:12 作者:
有時(shí)候我們需要時(shí)候備份一些文件,只有當(dāng)這個(gè)文件被修改了并且不是空的時(shí)候才復(fù)制
因?yàn)榫W(wǎng)站需要頻繁的更新首頁,有時(shí)候使用cdn經(jīng)常導(dǎo)致首頁正在生成內(nèi)容的時(shí)候同步數(shù)據(jù)(可能是沖突,經(jīng)常導(dǎo)致首頁是空的),這就想了先生成一個(gè)不是首頁的index2.htm然后再復(fù)制一遍為index.htm,這樣index2的頻繁讀寫也沒問題了。所以先判斷index2.htm不是空的時(shí)候才復(fù)制,而且必須是比index.htm更新的時(shí)候才復(fù)制。這樣就需要一些腳本的支持了。
前幾天寫了一個(gè)(bat+xcopy實(shí)現(xiàn)只復(fù)制比目標(biāo)文件更新的文件)還是出現(xiàn)為空的情況,這里特加些功能,參考很多網(wǎng)站的文章,感謝百度的結(jié)果很給力。
先來個(gè)bat版的
@echo off
::每5分鐘復(fù)制以下首頁
for /f %%i in ('dir /b c:\index2.htm') do (
set indexdx=%%~zi
)
if %indexdx% gtr 5120 (
echo y | xcopy c:\index2.htm /d /r /k c:\index.htm
)
其中for /f %%i in ('dir /b c:\index2.htm') do (
set indexdx=%%~zi
)
是bat中獲取index2.htm文件大小的。
然后通過if %indexdx% gtr 5120 (
實(shí)現(xiàn)判斷是不是大于5120個(gè)字節(jié)
主要就是下面這個(gè)代碼了功能更強(qiáng),也比較簡單
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
set fn2=fso.GetFile("c:\index2.htm")
flsize2=fn2.size
fldate2=fn2.datelastmodified
set fn=fso.GetFile("c:\index.htm")
flsize1=fn.size
fldate1=fn.datelastmodified
If fso.FileExists("c:\index2.htm") and flsize2>50000 and fldate2>fldate1 Then
fso.getfile("c:\index2.htm").copy("c:\index.htm")
if err.number=0 then WriteHistory "成功"&now(),"log.txt"
end if
Sub WriteHistory(hisChars, path)
Const ForReading = 1, ForAppending = 8
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(path, ForAppending, True)
f.WriteLine hisChars
f.Close
End Sub
還有日志功能,當(dāng)前bat下也可以的。需要的可以自己擴(kuò)展下。
腳本之家遠(yuǎn)程文章,轉(zhuǎn)載請注明出處。
前幾天寫了一個(gè)(bat+xcopy實(shí)現(xiàn)只復(fù)制比目標(biāo)文件更新的文件)還是出現(xiàn)為空的情況,這里特加些功能,參考很多網(wǎng)站的文章,感謝百度的結(jié)果很給力。
先來個(gè)bat版的
復(fù)制代碼 代碼如下:
@echo off
::每5分鐘復(fù)制以下首頁
for /f %%i in ('dir /b c:\index2.htm') do (
set indexdx=%%~zi
)
if %indexdx% gtr 5120 (
echo y | xcopy c:\index2.htm /d /r /k c:\index.htm
)
其中for /f %%i in ('dir /b c:\index2.htm') do (
set indexdx=%%~zi
)
是bat中獲取index2.htm文件大小的。
然后通過if %indexdx% gtr 5120 (
實(shí)現(xiàn)判斷是不是大于5120個(gè)字節(jié)
主要就是下面這個(gè)代碼了功能更強(qiáng),也比較簡單
復(fù)制代碼 代碼如下:
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
set fn2=fso.GetFile("c:\index2.htm")
flsize2=fn2.size
fldate2=fn2.datelastmodified
set fn=fso.GetFile("c:\index.htm")
flsize1=fn.size
fldate1=fn.datelastmodified
If fso.FileExists("c:\index2.htm") and flsize2>50000 and fldate2>fldate1 Then
fso.getfile("c:\index2.htm").copy("c:\index.htm")
if err.number=0 then WriteHistory "成功"&now(),"log.txt"
end if
Sub WriteHistory(hisChars, path)
Const ForReading = 1, ForAppending = 8
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(path, ForAppending, True)
f.WriteLine hisChars
f.Close
End Sub
還有日志功能,當(dāng)前bat下也可以的。需要的可以自己擴(kuò)展下。
腳本之家遠(yuǎn)程文章,轉(zhuǎn)載請注明出處。
您可能感興趣的文章:
相關(guān)文章
VBS教程:正則表達(dá)式簡介 -優(yōu)先權(quán)順序
VBS教程:正則表達(dá)式簡介 -優(yōu)先權(quán)順序...2006-11-11
使用vbs腳本來監(jiān)控windows服務(wù)器上的應(yīng)用程序(不存在就啟動(dòng))
這個(gè)vbs代碼主要實(shí)現(xiàn)的功能就是運(yùn)行該程序,就會(huì)在進(jìn)程中出現(xiàn)一個(gè)wscript.exe?它會(huì)每隔10s掃面一次進(jìn)程中是否存在notepad.exe這個(gè)程序,不存在就啟動(dòng)。這個(gè)啟動(dòng)程序可能跟進(jìn)程名不一樣,好比tomcat應(yīng)用,啟動(dòng)的是startup.bat,后臺(tái)進(jìn)程名為java.exe2023-06-06
VBS實(shí)現(xiàn)GB2312,UTF-8,Unicode,BIG5編碼轉(zhuǎn)換工具
VBS寫的GB2312,UTF-8,Unicode,BIG5編碼轉(zhuǎn)換工具,轉(zhuǎn)換工具下載:GB2Ue.vbs (3.34 kb)2010-06-06
使用 Iisext.vbs 列出 Web 服務(wù)擴(kuò)展文件的方法
這篇文章主要介紹了如何使用 iisext.vbs 在本地或遠(yuǎn)程計(jì)算機(jī)上列出 Web 服務(wù)擴(kuò)展文件,需要的朋友可以參考下2014-07-07
Wscript 和 Cscript 運(yùn)行腳本的區(qū)別詳解
WSCRIPT與CScript的主要區(qū)別在于WSCRIPT窗口中運(yùn)行返回對話框,而CScrip在命令行中運(yùn)行,一般不需要特別注明,程序會(huì)提示2014-06-06
Win7下VHD文件右鍵增強(qiáng)實(shí)現(xiàn)代碼(vbs+注冊表)
這篇文章主要介紹了Win7下VHD文件右鍵增強(qiáng)的實(shí)現(xiàn)方法,需要的朋友可以參考下2013-07-07

