QTP:VBS基礎(chǔ)教程_第1頁(yè)
QTP:VBS基礎(chǔ)教程_第2頁(yè)
QTP:VBS基礎(chǔ)教程_第3頁(yè)
QTP:VBS基礎(chǔ)教程_第4頁(yè)
QTP:VBS基礎(chǔ)教程_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、qtp:vbs基礎(chǔ)教程vbs腳本編程簡(jiǎn)明教程之一為什么要使用Vbs?在Windows中,學(xué)習(xí)計(jì)算機(jī)操作也許很簡(jiǎn)單,但是很多計(jì)算機(jī)工作是重復(fù)性勞動(dòng),例如你每周也許需要對(duì)一些計(jì)算機(jī)文件進(jìn)行復(fù)制、粘貼、改名、刪除,也許你每天啟動(dòng)計(jì)算機(jī)第一件事情就是打開WORD,切換到你喜愛的輸入法進(jìn)行文本編輯,同時(shí)還要播放優(yōu)美的音樂給工作創(chuàng)造一個(gè)舒心的環(huán)境,當(dāng)然也有可能你經(jīng)常需要對(duì)文本中的某些數(shù)據(jù)進(jìn)行整理,把各式各樣的數(shù)據(jù)按照某種規(guī)則排列起來(lái)。這些事情重復(fù)、瑣碎,使人容易疲勞。 第三方軟件也許可以強(qiáng)化計(jì)算機(jī)的某些功能,但是解決這些重復(fù)勞動(dòng)往往事倍功半,我也嘗試過使用計(jì)算機(jī)語(yǔ)言編寫程序來(lái)解決這些問題,但是隨之而來(lái)的命

2、令、語(yǔ)法、算法、系統(tǒng)框架和類庫(kù)常常讓我覺得這樣是否有必要,難道就是因?yàn)樨i毛比較難拔,所以我就要去學(xué)習(xí)機(jī)械,為自己設(shè)計(jì)一個(gè)拔豬毛機(jī)(?)嗎?Vbs是一種Windows腳本,它的全稱是:Microsoft Visual Basic Script Editon.(微軟公司可視化BASIC腳本版),VBS是Visual Basic的的一個(gè)抽象子集,是系統(tǒng)內(nèi)置的,用它編寫的腳本代碼不能編譯成二進(jìn)制文件,直接由Windows系統(tǒng)執(zhí)行(實(shí)際是一個(gè)叫做宿主host的解釋源代碼并執(zhí)行),高效、易學(xué),但是大部分高級(jí)語(yǔ)言能干的事情,它基本上都具備,它可以使各種各樣的任務(wù)自動(dòng)化,可以使你從重復(fù)瑣碎的工作中解脫出來(lái),極

3、大的提高工作效率。我個(gè)人認(rèn)為Vbs腳本其實(shí)就是一種計(jì)算機(jī)編程語(yǔ)言,但是由于缺少計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言中的部分要素,對(duì)于事件的描述能力較弱,所以稱為腳本,它最方便的地方就是提供了對(duì)COM對(duì)象的簡(jiǎn)便支持。那么什么是COM對(duì)象呢?我這樣理解,COM對(duì)象就是一些具有特定函數(shù)功能項(xiàng)程序模塊,他們一般以ocx或者dll作為擴(kuò)展名,你只要找到包含有你需要的功能的模塊文件,并在腳本中規(guī)范的引用,就可以實(shí)現(xiàn)特定的功能,也就是說(shuō)Vbs腳本就是調(diào)用現(xiàn)成的“控件”作為對(duì)象,用對(duì)象的屬性和方法實(shí)現(xiàn)目的,完全免去了編寫代碼、設(shè)計(jì)算法等等麻煩。說(shuō)白了,我不是覺得拔豬毛麻煩么?我發(fā)覺xx機(jī)(比如真空離心器)有一個(gè)功能可以實(shí)現(xiàn)脫毛

4、,ok,我把它拿來(lái)給豬脫毛。什么?大材小用?太浪費(fèi)資源了?天哪,那是計(jì)算機(jī)芯片的事情,死道友不死貧道,反正我的事情是方便快速的解決了,這就行了。最方便的是它甚至不需要專門的開發(fā)環(huán)境,在你的計(jì)算機(jī)中,只要有notepad,就可以編寫Vbs腳本了,并且可以直接執(zhí)行。Vbs腳本編程簡(jiǎn)明教程之二如何開始第一個(gè)Vbs腳本?就像多數(shù)計(jì)算機(jī)教程一樣 ,我們從“Hello World!”程序開始我們的練習(xí)。什么?不知道是什么意思?就是說(shuō)大部分的計(jì)算機(jī)程序設(shè)計(jì)教程開篇入門都是編寫一個(gè)小程序,執(zhí)行這個(gè)程序的結(jié)果就是在計(jì)算機(jī)的屏幕上或者dos窗口中顯示一行文字:Hello World!好了,我們開始吧。打開你的“記

5、事本”程序,在編輯窗口填寫:msgbox Hello World!然后用鼠標(biāo)單擊“文件”菜單,單擊“保存”,把“保存在”一欄設(shè)為桌面,在“文件名”一欄中填寫kk.vbs,單擊“保存”就可以了。然后最小化“記事本”窗口,在桌面上尋找你剛剛保存的kk.vbs,然后雙擊??吹綇棾龅膶?duì)話框了沒有,單擊“確定”,對(duì)話框消失了。難看了點(diǎn),不過確實(shí)是你編寫的第一個(gè)腳本程序。說(shuō)明之一:上面的操作中,保存位置放在桌面,僅僅是為了執(zhí)行方便,你保存到其他的地方完全沒有問題,只要你知道你保存在什么地方就可以了,什么?是廢話,自己保存的當(dāng)然知道保存在那里了。不,自己保存的文件自己找不到的人我見的多了去了。文件名你可以隨

6、意填寫,不一定非要寫kk,只要符合Windows的文件命名規(guī)則就可以了,但是擴(kuò)展名必須是vbs,什么?不知道什么是擴(kuò)展名?就是文件名中“.”后的那部分,簡(jiǎn)單說(shuō),就是vbs腳本文件命名時(shí)必須是:xxx.vbs,其中xxx你隨意。Vbs腳本編程簡(jiǎn)明教程之三Vbs的基本語(yǔ)法(牢記)VBScript基礎(chǔ)知識(shí)一、變量1、所有單引號(hào)后面的內(nèi)容都被解釋為注釋。2、在VBScript中,變量的命名規(guī)則遵循標(biāo)準(zhǔn)的命名規(guī)則,需要注意的是:在VBScript中對(duì)變量、方法、函數(shù)和對(duì)象的引用是不區(qū)分大小寫的。在申明變量時(shí),要顯式地申明一個(gè)變量,需要使用關(guān)鍵字Dim來(lái)告訴VBScript你要?jiǎng)?chuàng)建一個(gè)變量,并將變量名稱跟

7、在其后。申明多個(gè)同類型變量,可以用逗號(hào)分隔。注意:VBScript中不允許在申明變量的時(shí)候同時(shí)給變量賦值。但是允許在一行代碼內(nèi)同時(shí)對(duì)兩個(gè)變量進(jìn)行賦值,中間用冒號(hào)分隔。3、你可以使用Option Explicit來(lái)告訴宿主變量必須先聲明后使用。4、VBScript在定義時(shí)只有一種變量類型,在實(shí)際使用中需要使用類型轉(zhuǎn)換函數(shù)來(lái)將變量轉(zhuǎn)換成相應(yīng)的變量類型。二、數(shù)組數(shù)組的定義與變量非常類似,只需要在變量后描述這個(gè)數(shù)組的個(gè)數(shù)和維數(shù)。需要注意的是:數(shù)組的下標(biāo)總是從0開始,而以數(shù)組定義中數(shù)值減一結(jié)束。也就是說(shuō)你以要定義一個(gè)有十個(gè)數(shù)據(jù)的數(shù)組,將這樣書寫代碼:DimArray(9),同樣,當(dāng)你要訪問第五個(gè)元素時(shí),

8、實(shí)際的代碼是array(4)。三、操作符在VBScript運(yùn)算符中,加減乘除都是我們常用的符號(hào),乘方使用的是 ,取模使用的Mod。在比較操作符中,等于、小于、大于、小于等于、大于等于都與我們常用的符號(hào)是一致的,而不等于是小于和大于連用。邏輯運(yùn)算符為:和操作AND 非操作NOT 或操作OR;你可以使用操作符 + 和操作符 & 來(lái)連接字符串,一般使用&操作符;另外還有一個(gè)比較特殊的操作符Is用來(lái)比較對(duì)象,例如按鈕對(duì)象,如果對(duì)象是同一類型,結(jié)果就是真,如果對(duì)象不是同一類型,結(jié)果就是假。四、條件語(yǔ)句主要有ifthen語(yǔ)句和selectcase語(yǔ)句兩種形式在ifthen語(yǔ)句中,其基本形式為:If 條件

9、then處理?xiàng)l件的語(yǔ)句;Endif基本形式只能對(duì)單個(gè)條件進(jìn)行驗(yàn)證,如果有兩個(gè)條件,則需要在基本形式中添加單行語(yǔ)句else,如果還有更多的條件需要驗(yàn)證,則需要添加語(yǔ)句Elseif 條件 then處理?xiàng)l件語(yǔ)句在selectcase語(yǔ)句中,其基本形式為:Select case 變量Case 條件值處理?xiàng)l件語(yǔ)句并對(duì)上兩句進(jìn)行重復(fù)最后一句應(yīng)為case elseEnd Select處理語(yǔ)句當(dāng)然不要忘記將條件結(jié)束語(yǔ)句End select放在最后一行注意:在執(zhí)行字符串比較時(shí),需要特別注意大小寫,一般情況下,我們?cè)诒容^前,使用lcase函數(shù)將字符串轉(zhuǎn)換成小寫,使用ucase函數(shù)將字符串轉(zhuǎn)換成大寫大寫。五、循環(huán)控

10、制語(yǔ)句循環(huán)控制語(yǔ)句有fornext循環(huán)、foreach循環(huán)、dowhile循環(huán)、dountil循環(huán)、while循環(huán)五種形式。在使用循環(huán)控制語(yǔ)句前,首先要對(duì)循環(huán)條件進(jìn)行判斷,如果循環(huán)次數(shù)是有固定次數(shù)的,那么使用Fornext循環(huán),其結(jié)構(gòu)為:For 計(jì)數(shù)器變量開始計(jì)數(shù)值 to 最后計(jì)數(shù)值執(zhí)行循環(huán)體Next如果是需要對(duì)數(shù)組或?qū)ο蠹现械拿恳粋€(gè)元素進(jìn)行判斷,則需要使用foreach循環(huán),其結(jié)構(gòu)為:For each 循環(huán)計(jì)數(shù)變量 in 要查看的對(duì)象或數(shù)組執(zhí)行處理語(yǔ)句Next注意:在上述兩種循環(huán)中隨時(shí)可以使用exit for來(lái)退出循環(huán)如果你希望在條件滿足時(shí)執(zhí)行一段代碼則使用dowhile語(yǔ)句,結(jié)構(gòu)為:Do

11、 while 條件執(zhí)行循環(huán)體Loop如果你希望在條件不滿足時(shí)執(zhí)行代碼,則使用dountil語(yǔ)句,結(jié)構(gòu)為:Dountil條件執(zhí)行循環(huán)體Loop當(dāng)然,在這兩種循環(huán)語(yǔ)句中,你可以使用exit do來(lái)退出循環(huán)最后一種循環(huán)語(yǔ)句是條件滿足時(shí)一直執(zhí)行循環(huán),While 條件執(zhí)行循環(huán)體Wend六、使用過程常用的過程有兩種,一種為函數(shù),給調(diào)用者返回值,一種為子程序,無(wú)返回值,還有一種叫事件的特殊子程序,用的比較少。函數(shù)的基本定義方法為:Function 函數(shù)名稱(參數(shù)列表)函數(shù)代碼函數(shù)名稱某值 用來(lái)返回值end function子程序一些都類似,不過沒有返回值注意:盡管在定義子程序的時(shí)候,參數(shù)列表要加括號(hào),但在調(diào)

12、用子程序的時(shí)候,參數(shù)列表不加括號(hào),括號(hào)只在函數(shù)中使用。另外,子程序不能在表達(dá)式中使用。而函數(shù)只能出現(xiàn)在賦值語(yǔ)句的右邊,或者表達(dá)式中,函數(shù)不能直接使用,如果必須直接使用函數(shù),則必須使用call語(yǔ)句調(diào)用,并取消返回值。Vbs腳本編程簡(jiǎn)明教程之四如何利用Vbs運(yùn)行外部程序?Vbs只提供了編程的一個(gè)基本框架,用戶可以使用Vbs來(lái)定義變量、過程和函數(shù),vbs也提供了一些內(nèi)部函數(shù)和對(duì)象,但是Vbs沒有提供任何命令來(lái)訪問Windows系統(tǒng)內(nèi)部的部件,但是值得慶幸的是,Vbs雖然不能自己完成這些任務(wù),但是它提供了一條極為方便、功能也相當(dāng)強(qiáng)的命令CreateObject,這條命令可以訪問windows系統(tǒng)內(nèi)安裝

13、的所有com對(duì)象,并且可以調(diào)用這些部件中存放的命令。 于是問題解決了,比如說(shuō),我手頭有1000個(gè)小文本,我首先要對(duì)每一個(gè)文本的語(yǔ)法進(jìn)行查錯(cuò)和修改,然后按照預(yù)先定義好的規(guī)則對(duì)這些文本進(jìn)行排序,最后將這些文本合并成為一個(gè)文件。正常情況下,我們需要把打開第一個(gè)小文本,然后把它復(fù)制到WORD中,然后利用里面的除錯(cuò)功能進(jìn)行除錯(cuò)和修改,然后再導(dǎo)入到EXCEL中進(jìn)行排序,將這個(gè)過程重復(fù)1000遍,然后再將所有得到的文本復(fù)制到一個(gè)大文本中。實(shí)在是太枯燥、工作量太大了。有了Vbs和CreateObject,問題得到解決,我只需要找到相應(yīng)的模塊,調(diào)用相應(yīng)的功能就可以了,作為腳本,把一個(gè)枯燥的過程重復(fù)1000次,本

14、就是它的拿手好戲。好了,我們走入正題,從最簡(jiǎn)單的只啟動(dòng)一個(gè)程序開始。WSH也就是用來(lái)解析Vbs的宿主,本身包含了幾個(gè)個(gè)常用對(duì)象:1、Scripting.FileSystemObject 提供一整套文件系統(tǒng)操作函數(shù)2、Scripting.Dictionary 用來(lái)返回存放鍵值對(duì)的字典對(duì)象3、Wscript.Shell 提供一套讀取系統(tǒng)信息的函數(shù),如讀寫注冊(cè)表、查找指定文件的路徑、讀取DOS環(huán)境變量,讀取鏈接中的設(shè)置4、Wscript.NetWork 提供網(wǎng)絡(luò)連接和遠(yuǎn)程打印機(jī)管理的函數(shù)。(其中,所有Scripting對(duì)象都存放在SCRRUN.DLL文件中,所有的Wscript對(duì)象都存放在WSHOM

15、.ocx文件中。)現(xiàn)在我們需要的是第三個(gè)對(duì)象,好了,讓我們先連接一下對(duì)象看看,在記事本的編輯窗口中輸入:Set objShell = CreateObject(“Wscript.Shell”)objShell.Run “notepad”同樣,保存執(zhí)行。那么看到了一個(gè)什么樣的結(jié)果呢?在桌面上又打開了一個(gè)記事本。說(shuō)明之一:Set是Vbs指令,凡是將一對(duì)象引用賦給變量,就需要使用set關(guān)鍵字。那么什么是對(duì)象引用呢?凡是字符串、數(shù)值、布爾值之外的變量都是對(duì)象引用。Objshell是變量名,可以隨意修改。說(shuō)明之二:反是正確引用的對(duì)象,其本身內(nèi)置有函數(shù)和變量,其引用方法為在變量后加“. ”,后緊跟其實(shí)現(xiàn)功

16、能的函數(shù)就可以了。Objshell.run的意思就是調(diào)用Wscript.shell中的運(yùn)行外部程序的函數(shù)run,notepad是記事本程序的文件名。當(dāng)然你也可以改成“calc”,這是計(jì)算器的文件名,winword是word的文件名,等等吧,所有可執(zhí)行文件的文件名都可以。但是需要注意的是,如果你要執(zhí)行的可執(zhí)行文件存放的地方不是程序安裝的常用路徑,一般情況下,需要提供合法的路徑名,但是run在運(yùn)行解析時(shí),遇到空格會(huì)停止,解決的方法是使用雙引號(hào),例如:在我的機(jī)器上運(yùn)行qq,代碼為:objshell.run C:Program FilesQQ2006QQ.exe 注:三個(gè)引號(hào)好, 我們?cè)龠M(jìn)一步,啟動(dòng)兩

17、個(gè)程序會(huì)如何呢?輸入如下代碼:Set objShell = CreateObject(“Wscript.Shell”)objShell.Run “notepad”objShell.Run “calc”執(zhí)行會(huì)如何呢??jī)蓚€(gè)程序基本上同時(shí)啟動(dòng)了。如果我們需要先啟動(dòng)notepad再啟動(dòng)calc將如何呢?很簡(jiǎn)單在需要順序執(zhí)行的代碼后加 , , True參數(shù)就可以了。好了輸入代碼:Set objShell = CreateObject(“Wscript.Shell”)objShell.Run “notepad” ,trueobjShell.Run “calc”看看執(zhí)行的結(jié)果怎么樣吧!總結(jié):run函數(shù)有三個(gè)

18、參數(shù),第一個(gè)參數(shù)是你要執(zhí)行的程序的路徑,第二個(gè)程序是窗口的形式,0是在后臺(tái)運(yùn)行;1表示正常運(yùn)行;2表示激活程序并且顯示為最小化;3表示激活程序并且顯示為最大化;一共有10個(gè)這樣的參數(shù)我只列出了4個(gè)最常用的。第三個(gè)參數(shù)是表示這個(gè)腳本是等待還是繼續(xù)執(zhí)行,如果設(shè)為了true,腳本就會(huì)等待調(diào)用的程序退出后再向后執(zhí)行。其實(shí),run做為函數(shù),前面還有一個(gè)接受返回值的變量,一般來(lái)說(shuō)如果返回為0,表示成功執(zhí)行,如果不為0,則這個(gè)返回值就是錯(cuò)誤代碼,可以通過這個(gè)代碼找出相應(yīng)的錯(cuò)誤。Vbs腳本編程簡(jiǎn)明教程之五錯(cuò)誤處理引發(fā)錯(cuò)誤的原因有很多,例如用戶輸入了錯(cuò)誤類型的值,或者腳本找不到必需的文件、目錄或者驅(qū)動(dòng)器,我們可

19、以使用循環(huán)技術(shù)來(lái)處理錯(cuò)誤,但是VBS本身也提供了一些基本技術(shù)來(lái)進(jìn)行錯(cuò)誤的檢測(cè)和處理。1、最常見的錯(cuò)誤是運(yùn)行時(shí)錯(cuò)誤,也就是說(shuō)錯(cuò)誤在腳本正在運(yùn)行的時(shí)候發(fā)生,是腳本試圖進(jìn)行非法操作的結(jié)果。例如零被作為除數(shù)。在vbs中,任何運(yùn)行時(shí)錯(cuò)誤都是致命的,此時(shí),腳本將停止運(yùn)行,并在屏幕上顯示一個(gè)錯(cuò)誤消息。你可以在腳本的開頭添加On Error Resume Next這行語(yǔ)句可以告訴vbs在運(yùn)行時(shí)跳過發(fā)生錯(cuò)誤的語(yǔ)句,緊接著執(zhí)行跟在它后面的語(yǔ)句。發(fā)生錯(cuò)誤時(shí),該語(yǔ)句將會(huì)把相關(guān)的錯(cuò)誤號(hào)、錯(cuò)誤描述和相關(guān)源代碼壓入錯(cuò)誤堆棧。2、雖然On Error Resume Next語(yǔ)句可以防止vbs腳本在發(fā)生錯(cuò)誤時(shí)停止運(yùn)行,但是它并

20、不能真正處理錯(cuò)誤,要處理錯(cuò)誤,你需要在腳本中增加一些語(yǔ)句,用來(lái)檢查錯(cuò)誤條件并在錯(cuò)誤發(fā)生時(shí)處理它。vbscript提供了一個(gè)對(duì)象err對(duì)象,他有兩個(gè)方法clear,raise,5個(gè)屬性:description,helpcontext,helpfile,number,sourceerr對(duì)象不用引用實(shí)例,可以直接使用,例如:on error resume nexta=11b=0c=a/bif err.number0 thenwscript.echo err.number & err.description & err.sourceend ifVbs腳本編程簡(jiǎn)明教程之六FSO的常見對(duì)象和方法文件系統(tǒng)是

21、所有操作系統(tǒng)最重要的部分之一,腳本經(jīng)常會(huì)需要對(duì)文件及文件夾進(jìn)行訪問和管理,在Vbs中對(duì)桌面和文件系統(tǒng)進(jìn)行訪問的頂級(jí)對(duì)象是FileSystemObject(FSO),這個(gè)對(duì)象特別復(fù)雜,是vbs進(jìn)行文件操作的核心。此節(jié)內(nèi)容應(yīng)了如指掌。FSO包含的常見對(duì)象有:Drive對(duì)象:包含儲(chǔ)存設(shè)備的信息,包括硬盤、光驅(qū)、ram盤、網(wǎng)絡(luò)驅(qū)動(dòng)器Drives集合:提供一個(gè)物理和邏輯驅(qū)動(dòng)器的列表File 對(duì)象:檢查和處理文件Files 集合:提供一個(gè)文件夾中的文件列表Folder對(duì)象:檢查和處理文件夾Folders集合:提供文件夾中子文件夾的列表Textstream對(duì)象:讀寫文本文件FSO的常見方法有:BulidPa

22、th:把文件路徑信息添加到現(xiàn)有的文件路徑上CopyFile:復(fù)制文件CopyFolder:復(fù)制文件夾CreateFolder:創(chuàng)建文件夾CreateTextFile:創(chuàng)建文本并返回一個(gè)TextStream對(duì)象DeleteFile:刪除文件DeleteFolder:刪除文件夾及其中所有內(nèi)容DriveExits:確定驅(qū)動(dòng)器是否存在FileExits:確定一個(gè)文件是否存在FolderExists:確定某文件夾是否存在GetAbsolutePathName:返回一個(gè)文件夾或文件的絕對(duì)路徑GetBaseName:返回一個(gè)文件或文件夾的基本路徑GetDrive:返回一個(gè)dreve對(duì)象GetDriveNam

23、e:返回一個(gè)驅(qū)動(dòng)器的名字GetExtensionName:返回?cái)U(kuò)展名GetFile:返回一個(gè)file對(duì)象GetFileName:返回文件夾中文件名稱GetFolder:返回一個(gè)文件夾對(duì)象GetParentFolderName:返回一個(gè)文件夾的父文件夾GetSpecialFolder:返回指向一個(gè)特殊文件夾的對(duì)象指針GetTempName:返回一個(gè)可以被createtextfile使用的隨機(jī)產(chǎn)生的文件或文件夾的名稱MoveFile:移動(dòng)文件MoveFolder:移動(dòng)文件夾OpenTextFile:打開一個(gè)存在的文件并返回一個(gè)TextStream對(duì)象Vbs腳本編程簡(jiǎn)明教程之七FSO中文件夾的基本操

24、作1、使用fso由于fso不是wsh的一部分,所以我們需要建立他的模型例如set fs=wscript.createobject(“scripting.filesystemobject”)這樣就建立了fso的模型。如果要釋放的話也很簡(jiǎn)單,set fs=nothing2、使用文件夾在創(chuàng)建前,我們一般需要檢查該文件夾是否存在例如:dim fs,s /定義fs、s兩個(gè)變量set fs=wscript.createobject(“scripting.filesystemobject”) /fs為FSO實(shí)例if (fs.folderexists(“c:temp”) then /判斷c:temp文件夾是否

25、存在s=”is available”elses=”not exist”set foldr=fs.createfolder(“c:temp”) /不存在則建立end if拷貝:注意:如果c:data 和d:data都存在,腳本會(huì)出錯(cuò),復(fù)制也就會(huì)停止,如果要強(qiáng)制覆蓋,使用fs.copyfolder “c:data”“d:data”,true移動(dòng):set fs=wscript.createobject(“scripting.filesystemobject”)fs.movefolder “c:data” “d:data”我們可以使用統(tǒng)配符,來(lái)方便操作:例如, fs.movefolder :c:dat

26、ate*” , “d:working”注意:在目的路徑最后沒有使用“” 也就是說(shuō)我沒有這樣寫:fs.movefolder c:datate*” , “d:working”這樣寫的話,如果d:working 目錄不存在,windows就不會(huì)為我們自動(dòng)創(chuàng)建這個(gè)目錄。注意:上面我們所舉的例子都是在利用fso提供的方法,如果使用folder對(duì)象也完全是可以的:set fs= wscript.createobject(“scripting.filesystemobject”)set f=fs.getfolder(“c:data”)f.delete /刪除文件夾c:data。如果有子目錄,也會(huì)被刪除f.c

27、opy “d:working”,true /拷貝到d:workingf.move “d:temp” /移動(dòng)到d:temp一般指的就是系統(tǒng)文件夾:windowssystem32,臨時(shí)文件夾,windows文件夾,在前幾篇的時(shí)候,我們提過一下:例如set fs=wscript.createobject(“scripting.filesystemobject”)set wshshell=wscript.createobject(“wscript.shell”)osdir=wshshell.expandenvironmentstrings(“%systemroot%”)set f =fs.getfol

28、der(osdir)wscript.echo f這個(gè)方法使用3種值:0 表示windows文件夾,相關(guān)常量是windowsfolder1 系統(tǒng)文件夾,相關(guān)常量是systemfolder2 臨時(shí)目錄,相關(guān)常量temporaryfolder例如:set fs=wscript.createobject(“scripting.filesystemobject”)set wfolder=fs.getspecialfolder(0) 返回windows目錄set wfolder=fs.getspecialfolder(1) 返回system32set wfolder=fs.getspecialfolder

29、(2)返回臨時(shí)目錄當(dāng)然,還有簡(jiǎn)單的方法 那就是使用getspecialfolder() 3、特殊文件夾set fs=wscript.createobject(“scripting.filesystemobject”)fs.copyfolder “c:data” “d:data”set fs=wscript.createobject(“scripting.filesystemobject”)fs.deletefolder(“c:windows”)Vbs腳本編程簡(jiǎn)明教程之八妙用SendKeys簡(jiǎn)化重復(fù)操作每次開機(jī)的時(shí)候,你想自動(dòng)登陸你的QQ或者博客嗎?巧妙使用VBS中的SendKeys命令(這個(gè)命

30、令的作用就是模擬鍵盤操作,將一個(gè)或多個(gè)按鍵指令發(fā)送到指定Windows窗口來(lái)控制應(yīng)用程序運(yùn)行),可以極大的方便我們的常用操作。其使用格式為: Object.SendKeys string其中:Object:為WshShell對(duì)象,即腳本的第一行為:Set WshShell=WScript.CreateObject(WScript.Shell)將Object替換為WshShell“string”:表示要發(fā)送的按鍵指令字符串,需要放在英文雙引號(hào)中。它包含如下內(nèi)容:1基本鍵:一般來(lái)說(shuō),要發(fā)送的按鍵指令都可以直接用該按鍵字符本身來(lái)表示,例如要發(fā)送字母“x”,使用“WshShell.SendKeysx”

31、即可。當(dāng)然,也可直接發(fā)送多個(gè)按鍵指令,只需要將按鍵字符按順序排列在一起即可,例如,要發(fā)送按鍵“cfan”,可以使用“WshShell.SendKeys cfan”。2特殊功能鍵:對(duì)于需要與Shift、Ctrl、Alt三個(gè)控制鍵組合的按鍵,SendKeys使用特殊字符來(lái)表示:Shift +;Ctrl ;Alt %如要發(fā)送的組合按鍵是同時(shí)按下CtrlE,需要用WshShell.SendKeys e”表示,如果要發(fā)送的組合按鍵是按住Ctrl鍵的同時(shí)按下E與C兩個(gè)鍵,這時(shí)應(yīng)使用小括號(hào)把字母鍵括起來(lái),書寫格式為“WshShell.SendKeys (ec)”,這里要注意它與“WshShell.SendK

32、eys ec”的區(qū)別,后者表示組合按鍵是同時(shí)按住Ctrl和E鍵,然后松開Ctrl鍵,單獨(dú)按下“C”字母鍵。由于“+”、“”這些字符用來(lái)表示特殊的控制按鍵了,如何表示這些按鍵呢?只要用大括號(hào)括住這些字符即可。例如,要發(fā)送加號(hào)“+”,可使用“WshShell.SendKeys +”。另外對(duì)于一些不會(huì)生成字符的控制功能按鍵,也同樣需要使用大括號(hào)括起來(lái)按鍵的名稱,例如要發(fā)送回車鍵,需要用“WshShell.SendKeys ENTER”表示,發(fā)送向下的方向鍵用“WshShell.SendKeys DOWN”表示。如果需要發(fā)送多個(gè)重復(fù)的單字母按鍵,不必重復(fù)輸入該字母,SendKeys允許使用簡(jiǎn)化格式進(jìn)行

33、描述,使用格式為“按鍵 數(shù)字”。例如要發(fā)送10個(gè)字母“x”,則輸入“WshShell.SendKeys x 10”即可。例一:WshShell.SendKeys ESCu代碼的含義為:按下CtrlEsc組合鍵(相當(dāng)于按Win鍵)打開“開始”菜單,接著按U鍵打開“關(guān)機(jī)”菜單。例二:讓VBS腳本自動(dòng)在記事本中輸入一行文字“hello, welcome to cfan”。Dim WshShellSet WshShell=WScript.CreateObject(WScript.Shell)WshShell.Run notepadWScript.Sleep 2000 /本行的含義為是腳本暫停2秒,給n

34、otepad一個(gè)打開的時(shí)間,有時(shí)時(shí)間太短可能導(dǎo)致后面的字符無(wú)法進(jìn)入編輯區(qū)WshShell.AppActivate 無(wú)標(biāo)題 - 記事本/AppActivate為尋找可執(zhí)行程序的標(biāo)題框,”無(wú)標(biāo)題記事本”內(nèi)容你的自己打開看一下WshShell.SendKeys hello, welcome to cfan作業(yè)1:讓腳本自動(dòng)輸入下面兩段小短句This is the most wonderful day of my lifebecause Im here with you now作業(yè)2:讓腳本在輸入短句后自動(dòng)關(guān)閉記事本,并保存文件名為“test”,注意關(guān)閉記事本可以直接使用組合按鍵AltF4來(lái)實(shí)現(xiàn)。例三

35、:制作能自動(dòng)定時(shí)存盤的記事本我們最常用的記事本沒有Word、WPS那樣的自動(dòng)定時(shí)存盤功能,其實(shí)利用VBS腳本再加上SendKeys命令,就能彌補(bǔ)這個(gè)遺憾。打開記事本,輸入以下內(nèi)容(為容易描述和分析,把代碼分為四個(gè)部分):第一部分:定義變量和對(duì)象Dim WshShell, AutoSaveTime, TXTFileNameAutoSaveTime=300000Set WshShell=WScript.CreateObject(WScript.Shell)TXTFileName=InputBox(請(qǐng)輸入你要?jiǎng)?chuàng)建的文件名(不能用中文和純數(shù)字):)第二部分:打開并激活記事本W(wǎng)shShell.Run n

36、otepadWScript.Sleep 200WshShell.AppActivate 無(wú)標(biāo)題 - 記事本第三部分:用輸入的文件名存盤WshShell.SendKeys sWScript.Sleep 300WshShell.SendKeys TXTFileNameWScript.Sleep 300WshShell.SendKeys %sWScript.Sleep AutoSaveTime第四部分:自動(dòng)定時(shí)存盤While WshShell.AppActivate (TXTFileName)=TrueWshShell.SendKeys sWScript.Sleep AutoSaveTimeWend

37、WScript.Quit將其保存為記事本.vbs,以后要使用記事本時(shí),都通過雙擊這個(gè)腳本文件來(lái)打開。程序說(shuō)明:這個(gè)腳本的基本思路是定時(shí)向記事本發(fā)送CtrlS這個(gè)存盤組合鍵。第一部分:定義了腳本中需要用到的變量和對(duì)象?!癆utoSaveTime”變量用來(lái)設(shè)置自動(dòng)存盤間隔,單位為毫秒,這里設(shè)置為5分鐘?!癟XTFileName”變量通過輸入框取得你要?jiǎng)?chuàng)建的文本文件名稱。第二部分:運(yùn)行記事本,對(duì)于Windows本身提供的程序,比如計(jì)算器等,可直接在“WshShell.Run”后輸入程序名稱,如calc,對(duì)于非系統(tǒng)程序,則可輸入完全路徑,但要注意使用8.3格式輸入,比如“D:Progra1Tencen

38、tQQ.exe”。第三部分:這里用SendKeys命令執(zhí)行了這樣的操作流程(請(qǐng)注意每個(gè)操作之間延時(shí)命令的使用):在記事本中按CtrlS組合鍵彈出保存文件的窗口輸入文件名按AltS組合鍵進(jìn)行保存(默認(rèn)保存在“我的文檔”目錄)。第四部分:定時(shí)存盤的關(guān)鍵,通過“WhileWend”這個(gè)當(dāng)條件為“真”時(shí)循環(huán)命令,實(shí)現(xiàn)自動(dòng)存盤代碼“WshShell.SendKeyss”和定時(shí)代碼“WScript.SleepAutoSaveTime”的重復(fù)執(zhí)行。因?yàn)椴荒茏屵@個(gè)定時(shí)存盤循環(huán)一直執(zhí)行,退出記事本后,必須自動(dòng)退出腳本并結(jié)束循環(huán),所以設(shè)計(jì)了一個(gè)循環(huán)判斷條件“WshShell.AppActivateTXTFileN

39、ame=True”,當(dāng)記事本運(yùn)行中時(shí),可以激活記事本窗口,這個(gè)條件運(yùn)行結(jié)果為“True”,定時(shí)存盤循環(huán)一直執(zhí)行,退出記事本后,腳本無(wú)法激活記事本窗口,就會(huì)跳出循環(huán),執(zhí)行“Wend”后面的“WScript.Quit”退出腳本。例四:關(guān)機(jī)菜單立刻顯身打開記事本,輸入以下命令,并將其保存為1.vbs:set WshShell = CreateObject(WScript.Shell)WshShell.SendKeys ESCu雙擊運(yùn)行它,你會(huì)發(fā)現(xiàn)關(guān)機(jī)菜單立刻出現(xiàn)了。將“WshShell.SendKeys ESCu”改為“WshShell.SendKeys +ESC”,運(yùn)行一下看看是否打開了任務(wù)管理器

40、。Vbs腳本編程簡(jiǎn)明教程之十 Vbs腳本編程常用的編輯器 Vbs腳本常用的編輯器當(dāng)然是notapad,不過這個(gè)編輯器的功能當(dāng)然實(shí)在是太弱了一點(diǎn),其實(shí)有很多的專用的腳本編輯器可以大大方便vbs腳本的編寫。我常用的有兩種: 1、VBSEDit漢化版2、primalscript漢化版,可以對(duì)30多種腳本進(jìn)行編輯Vbs腳本編程簡(jiǎn)明教程之九 FSO中文件的基本操作一、文件屬性:在windows中,文件的屬性一般用數(shù)字來(lái)表示:0代表normal,即普通文件未設(shè)置任何屬性。 1代表只讀文件。2代表隱藏文件。 4代表系統(tǒng)文件。 16代表文件夾或目錄。32代表存檔文件。 1024代表鏈接或快捷方式。例如:set fs=wscript.createobject(“scripting.filesystemobject”)set f=fs.getfile(“d:index.txt”)msgbox f.Attributes attributes函數(shù)的作用是顯示文件屬性需要說(shuō)明的是:msgbox顯示的結(jié)果往往不是上面說(shuō)明的數(shù)字,而是有關(guān)屬性代表數(shù)字的和。二、創(chuàng)建文件:object.createtextfile方法,注意創(chuàng)建前一般需要檢查文件是否存在。例如:set fso=wscript.createobject(“scripting.filesystemobject”)if fso.f

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論