實(shí)現(xiàn)方法如下
my-script.vbs "c:\scripts"
在文件夾路徑的兩端必須加雙引號嗎?本例中不需要。但是,如果路徑中有空格,則必須加雙引號。以下命令行將不起作用:
my-script.vbs c:\documents and settings\kmyer
只要是向腳本傳遞包含空格的參數(shù),就必須將整個(gè)參數(shù)括在雙引號內(nèi)(否則無需如此)。換句話說:
my-script.vbs "c:\documents and settings\kmyer"
這就是命令解釋程序的工作方式。
那么,我們將在這里運(yùn)行什么腳本呢?問得好。最終是這樣一個(gè)腳本:
Set objShell = CreateObject("Wscript.Shell")
strPath = Wscript.Arguments(0)
strPath = "explorer.exe /e," strPath
objShell.Run strPath
如同往常一樣,該腳本沒有太多內(nèi)容。我們首先創(chuàng)建 Wscript.Shell 對象的實(shí)例;它是 Windows Script Host 對象,我們用它來在另一腳本內(nèi)運(yùn)行腳本或可執(zhí)行文件。然后我們獲取提供給腳本的第一個(gè)參數(shù) (c:\scripts) 并將其存儲到名為 strPath 的變量中:
strPath = Wscript.Arguments(0)
對這些應(yīng)該沒有什么疑問吧?稍后,我們將使用 Run 方法啟動(dòng) Windows 資源管理器。不過,在此之前,我們應(yīng)注意到 WSH 中的 Run 方法同 Run 對話框基本上是一回事。如果想使用 Run 對話框啟動(dòng) Windows 資源管理器(焦點(diǎn)定位在 C:\Scripts 文件夾上),需要鍵入以下代碼:
explorer.exe /e,c:\scripts
我們發(fā)現(xiàn),以上使用的語法與我們用 Run 方法啟動(dòng) Windows 資源管理器所用的語法相同:我們只需要構(gòu)建命令,然后執(zhí)行:
strPath = "explorer.exe /e," strPath
objShell.Run strPath
在第 1 行,我們采取命令 explorer.exe /e, 并附加上文件夾路徑(該路徑存儲在變量 strPath 中);然后,strPath 的值將是 explorer.exe /e,c:\scripts。在第 2 行,我們調(diào)用 Run 方法,并將變量 strPath 作為所要運(yùn)行的命令傳遞。如果一切順利(就腳本編寫方面,事情總是很順利,對吧?),Windows 資源管理器將會(huì)打開且焦點(diǎn)定位在 C:\Scripts 上:
真酷。
那么,這有何不妥嗎?沒什么,一切正常。該腳本的唯一弊端是需要您鍵入文件夾的完整路徑;當(dāng)您試圖打開文件夾 C:\Documents and Settings\Default User\Application Data\Microsoft\SystemCertificates\My\Certificates 時(shí),這就會(huì)成為一個(gè)問題。但是由于系統(tǒng)管理員總是堅(jiān)持使用命令行,我們又必須做何種選擇呢?
好吧,您總是可以嘗試一下 GUI 方法(不用擔(dān)心,我們不會(huì)告訴任何人的):
Const WINDOW_HANDLE = 0
Const NO_OPTIONS = 0
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder _
(WINDOW_HANDLE, "Select a folder:", NO_OPTIONS)
Set objFolderItem = objFolder.Self
strPath = objFolderItem.Path
objShell.Explore strPath
本腳本根本不需要您做任何鍵入。您只需啟動(dòng)該腳本,然后它會(huì)顯示瀏覽文件夾對話框:
選擇文件夾,單擊確定,這樣就可以了。
那么,此腳本是如何工作的?好吧,我們先定義一對常量:WINDOW_HANDLE 和 NO_OPTIONS。WINDOW_HANDLE 是 BrowseForFolder 方法所需的常量,NO_OPTIONS 則只是通知腳本我們要顯示標(biāo)準(zhǔn)的“瀏覽文件夾”對話框。之后,我們創(chuàng)建 Shell.Application 對象的實(shí)例,然后使用下面這行代碼來顯示該對話框:
Set objFolder = objShell.BrowseForFolder _
(WINDOW_HANDLE, "Select a folder:", NO_OPTIONS)
在對話框顯示之后,它將一直等到我們選擇一個(gè)文件夾并單擊確定。然后我們使用如下兩行代碼來實(shí)現(xiàn):1) 創(chuàng)建對選定文件夾的對象引用;以及,2) 將文件夾路徑存儲到變量 strPath 中:
Set objFolderItem = objFolder.Self
strPath = objFolderItem.Path
我們現(xiàn)在只需調(diào)用專用于打開 Windows 資源管理器的 Explore 方法。通過將變量 strPath 作為單獨(dú)的參數(shù)傳遞,這樣會(huì)使得 Windows 資源瀏覽器在打開時(shí)焦點(diǎn)定位在 C:\Scripts 上:
objShell.Explore strPath
這說明了什么呢?這說明現(xiàn)在您可以使用命令提示符打開 Windows 資源管理器,也可以使用 GUI 打開 Windows 資源管理器,這完全取決于您。
您可能感興趣的文章:- vbs中獲取腳本當(dāng)前路徑的2個(gè)方法
- VBS打開當(dāng)前腳本所在文件夾