用vbs實現在啟動 Windows 資源管理員時開啟特定檔案夾_vbs

來源:互聯網
上載者:User
my-script.vbs "c:\scripts"
在檔案夾路徑的兩端必須加雙引號嗎?本例中不需要。但是,如果路徑中有空格,則必須加雙引號。以下命令列將不起作用:
my-script.vbs c:\documents and settings\kmyer
只要是向指令碼傳遞包含空格的參數,就必須將整個參數括在雙引號內(否則無需如此)。換句話說:
my-script.vbs "c:\documents and settings\kmyer"
這就是命令解釋程式的工作方式。
那麼,我們將在這裡運行什麼指令碼呢?問得好。最終是這樣一個指令碼:
複製代碼 代碼如下:

Set objShell = CreateObject("Wscript.Shell") 
strPath = Wscript.Arguments(0) 
strPath = "explorer.exe /e," & strPath 
objShell.Run strPath 

如同往常一樣,該指令碼沒有太多內容。我們首先建立 Wscript.Shell 對象的執行個體;它是 Windows Script Host 對象,我們用它來在另一指令碼內運行指令碼或可執行檔。然後我們擷取提供給指令碼的第一個參數 (c:\scripts) 並將其儲存到名為 strPath 的變數中:
strPath = Wscript.Arguments(0)
對這些應該沒有什麼疑問吧?稍後,我們將使用 Run 方法啟動 Windows 資源管理員。不過,在此之前,我們應注意到 WSH 中的 Run 方法同 Run 對話方塊基本上是一回事。如果想使用 Run 對話方塊啟動 Windows 資源管理員(焦點定位在 C:\Scripts 檔案夾上),需要鍵入以下代碼:
explorer.exe /e,c:\scripts
我們發現,以上使用的文法與我們用 Run 方法啟動 Windows 資源管理員所用的文法相同:我們只需要構建命令,然後執行: 
strPath = "explorer.exe /e," & strPath
objShell.Run strPath
在第 1 行,我們採取命令 explorer.exe /e, 並附加上檔案夾路徑(該路徑儲存在變數 strPath 中);然後,strPath 的值將是 explorer.exe /e,c:\scripts。在第 2 行,我們調用 Run 方法,並將變數 strPath 作為所要啟動並執行命令傳遞。如果一切順利(就指令碼編寫方面,事情總是很順利,對吧?),Windows 資源管理員將會開啟且焦點定位在 C:\Scripts 上:

真酷。
那麼,這有何不妥嗎?沒什麼,一切正常。該指令碼的唯一弊端是需要您鍵入檔案夾的完整路徑;當您試圖開啟檔案夾 C:\Documents and Settings\Default User\Application Data\Microsoft\SystemCertificates\My\Certificates 時,這就會成為一個問題。但是由於系統管理員總是堅持使用命令列,我們又必須做何種選擇呢?
好吧,您總是可以嘗試一下 GUI 方法(不用擔心,我們不會告訴任何人的):
複製代碼 代碼如下:

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 

本指令碼根本不需要您做任何鍵入。您只需啟動該指令碼,然後它會顯示瀏覽檔案夾對話方塊:

選擇檔案夾,單擊確定,這樣就可以了。
那麼,此指令碼是如何工作的?好吧,我們先定義一對常量:WINDOW_HANDLE 和 NO_OPTIONS。WINDOW_HANDLE 是 BrowseForFolder 方法所需的常量,NO_OPTIONS 則只是通知指令碼我們要顯示標準的“瀏覽檔案夾”對話方塊。之後,我們建立 Shell.Application 對象的執行個體,然後使用下面這行代碼來顯示該對話方塊:
Set objFolder = objShell.BrowseForFolder _
    (WINDOW_HANDLE, "Select a folder:", NO_OPTIONS)
在對話方塊顯示之後,它將一直等到我們選擇一個檔案夾並單擊確定。然後我們使用如下兩行代碼來實現:1) 建立對選定檔案夾的對象引用;以及,2) 將檔案夾路徑儲存到變數 strPath 中:
Set objFolderItem = objFolder.Self
strPath = objFolderItem.Path
我們現在只需調用專用於開啟 Windows 資源管理員的 Explore 方法。通過將變數 strPath 作為單獨的參數傳遞,這樣會使得 Windows 資源總管在開啟時焦點定位在 C:\Scripts 上:
objShell.Explore strPath
這說明了什麼呢?這說明現在您可以使用命令提示字元開啟 Windows 資源管理員,也可以使用 GUI 開啟 Windows 資源管理員,這完全取決於您。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.