用vbs將本地文件替換為在文件服務(wù)器上找到的新版本
問:
您好,腳本專家!如何將本地文件的修改日期與文件服務(wù)器上的副本進(jìn)行比較,并且,如果本地文件的版本更舊,將其替換為文件服務(wù)器上的版本?
-- DC
答:
您好,DC。讓我們想想,您是想將某些舊的東西替換為新的。不知道為什么,這讓我們感到很不安。
嗯,并不是因?yàn)槟_本專家正在變老,這得提醒您,我們沒有。畢竟,膝蓋和后背就應(yīng)該是這么吱吱作響的;不然怎么知道它們?cè)诎l(fā)揮作用呢??。?
注意:據(jù)說,當(dāng)愛斯基摩人老得不中用的時(shí)候,他們會(huì)被拋棄在大塊浮冰上任其自生自滅。幸好腳本專家都不是愛斯基摩人,而我們每天都要穿戴好外衣、手套和長統(tǒng)帽上班(包括夏天)。以防萬一。
不過比起過時(shí)的腳本專家來說,您可能更關(guān)心過時(shí)的文件,是吧?下面這個(gè)腳本將替換本地文件 C:\Scripts\Test.txt(如果此文件正好比其在服務(wù)器 atl-fs-01 上的副本更舊):
Const OverwriteExisting = TRUE
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objLocalFile = objFSO.GetFile("c:\scripts\test.txt")
dtmLocalDate = objLocalFile.DateLastModified
Set objServerFile = objFSO.GetFile("\\atl-fs-01\public\test.txt")
dtmServerDate = objServerFile.DateLastModified
If dtmLocalDate < dtmServerDate Then
objFSO.CopyFile objServerFile.Path, objLocalFile.Path, OverwriteExisting
End If
說到 FileSystemObject,我們?cè)诖四_本的下一行創(chuàng)建此對(duì)象 (Scripting.FileSystemObject) 的一個(gè)實(shí)例。然后,我們使用以下兩行代碼綁定到我們的第一個(gè)文件 (C:\Scripts\Test.txt),并將此文件的上次修改日期(DateLastModified 屬性)存儲(chǔ)在名為 dtmLocalDate 的變量中:
Set objLocalFile = objFSO.GetFile("c:\scripts\test.txt")
dtmLocalDate = objLocalFile.DateLastModified
然后,通過創(chuàng)建對(duì)服務(wù)器版本 Test.txt 的對(duì)象引用重復(fù)此過程。請(qǐng)注意,此處我們使用的變量名稱不同:本地文件的對(duì)象引用存儲(chǔ)在 objLocalFile 中,服務(wù)器文件的對(duì)象引用存儲(chǔ)在 objServerFile 中。不用說,我們還使用了不同的變量 (dtmServerDate) 來存儲(chǔ)此上次修改日期:
Set objServerFile = objFSO.GetFile("\\atl-fs-01\public\test.txt")
dtmServerDate = objServerFile.DateLastModified
仍在看嗎?下一步我們需要確定本地文件是否比服務(wù)器文件更舊。下面這行代碼就用來解決這個(gè)問題:
If dtmLocalDate < dtmServerDate Then
別被這的語法搞糊涂了。我們很容易假定舊文件的日期應(yīng)該大于新文件。但實(shí)際上日期不是這么處理的。假定“文件 A”的修改日期為 2/1/2006,“文件 B”的修改日期為 2/15/2006?!拔募?nbsp;A”比較舊,這意味著“文件 A”的修改日期小于(即,產(chǎn)生早于)“文件 B”。
那么如果本地文件比其服務(wù)器副本更舊,如何將本地文件替換為服務(wù)器上找到的副本?方法如下:
objFSO.CopyFile objServerFile.Path, objLocalFile.Path, OverwriteExisting
正如您看到的,我們要做的就是調(diào)用 CopyFile 方法并向其傳遞三個(gè)參數(shù):
? 我們想要復(fù)制的文件(即,服務(wù)器上找到的 Test.txt 版本)的路徑。
? 我們想要將此文件復(fù)制到的路徑。在本例中,即為本地文件的路徑。
? 常量 OverwriteExisting,它用來告訴腳本繼續(xù)進(jìn)行,并使用從服務(wù)器復(fù)制的版本替換本地文件。
至此您已實(shí)現(xiàn)了您的目的。然而,請(qǐng)記住,此腳本僅適用于舊文件。您不能使用它來替換,嗯,老腳本專家。(當(dāng)然,倒不是有人夢(mèng)想過替換腳本專家。不過,還是以防萬一 ...)
上一篇:vbs腳本大全,配有實(shí)例 DOS命令,批處理 腳本 代碼
欄 目:vb
下一篇:vbs腳本病毒生成器 下載
本文標(biāo)題:用vbs將本地文件替換為在文件服務(wù)器上找到的新版本
本文地址:http://mengdiqiu.com.cn/a1/vb/7901.html
您可能感興趣的文章
- 01-10下載文件到本地運(yùn)行的vbs
- 01-10VBS中的正則表達(dá)式的用法大全 <font color=red>原創(chuàng)&
- 01-10VBS中SendKeys的基本應(yīng)用
- 01-10VBScript教程 第十一課深入VBScript
- 01-10用VBSCRIPT控制ONSUBMIT事件
- 01-10VBScript語法速查及實(shí)例說明
- 01-10VBS中Select CASE的其它用法
- 01-10VBScript教程 第七課使用條件語句
- 01-10vbscript 可以按引用傳遞參數(shù)嗎?
- 01-10VBScript教程 第二課在HTML頁面中添加VBscript代碼


閱讀排行
本欄相關(guān)
- 01-10下載文件到本地運(yùn)行的vbs
- 01-10飄葉千夫指源代碼,又稱qq刷屏器
- 01-10SendKeys參考文檔
- 01-10什么是一個(gè)高效的軟件
- 01-10VBS中的正則表達(dá)式的用法大全 &l
- 01-10exe2swf 工具(Adodb.Stream版)
- 01-10VBS中SendKeys的基本應(yīng)用
- 01-10用VBSCRIPT控制ONSUBMIT事件
- 01-10VBScript教程 第十一課深入VBScript
- 01-10VBScript語法速查及實(shí)例說明
隨機(jī)閱讀
- 01-10C#中split用法實(shí)例總結(jié)
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-11ajax實(shí)現(xiàn)頁面的局部加載
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 04-02jquery與jsp,用jquery
- 01-10使用C語言求解撲克牌的順子及n個(gè)骰子
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-10delphi制作wav文件的方法