快速业务通道

用vbs实现在启动 Windows 资源管理器时打开特定文件夹

作者 佚名 来源 ASP编程 浏览 发布时间 2013-07-09
my-script.vbs"c:\scripts"
在文件夹路径的两端必须加双引号吗?本例中不需要。但是,如果路径中有空格,则必须加双引号。以下命令行将不起作用:
my-script.vbsc:\documentsandsettings\kmyer
只要是向脚本传递包含空格的参数,就必须将整个参数括在双引号内(否则无需如此)。换句话说:
my-script.vbs"c:\documentsandsettings\kmyer"
这就是命令解释程序的工作方式。
那么,我们将在这里运行什么脚本呢?问得好。最终是这样一个脚本:
复制代码 代码如下:

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

如同往常一样,该脚本没有太多内容。我们首先创建Wscript.Shell对象的实例;它是WindowsScriptHost对象,我们用它来在另一脚本内运行脚本或可执行文件。然后我们获取提供给脚本的第一个参数(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.RunstrPath
在第1行,我们采取命令explorer.exe/e,并附加上文件夹路径(该路径存储在变量strPath中);然后,strPath的值将是explorer.exe/e,c:\scripts。在第2行,我们调用Run方法,并将变量strPath作为所要运行的命令传递。如果一切顺利(就脚本编写方面,事情总是很顺利,对吧?),Windows资源管理器将会打开且焦点定位在C:\Scripts上:

真酷。
那么,这有何不妥吗?没什么,一切正常。该脚本的唯一弊端是需要您键入文件夹的完整路径;当您试图打开文件夹C:\DocumentsandSettings\DefaultUser\ApplicationData\Microsoft\SystemCertificates\My\Certificates时,这就会成为一个问题。但是由于系统管理员总是坚持使用命令行,我们又必须做何种选择呢?
好吧,您总是可以尝试一下GUI方法(不用担心,我们不会告诉任何人的):
复制代码 代码如下:

ConstWINDOW_HANDLE=0
ConstNO_OPTIONS=0
SetobjShell=CreateObject("Shell.Application")
SetobjFolder=objShell.BrowseForFolder_
(WINDOW_HANDLE,"Selectafolder:",NO_OPTIONS)
SetobjFolderItem=objFolder.Self
strPath=objFolderItem.Path
objShell.ExplorestrPath

本脚本根本不需要您做任何键入。您只需启动该脚本,然后它会显示浏览文件夹对话框:

选择文件夹,单击确定,这样就可以了。
那么,此脚本是如何工作的?好吧,我们先定义一对常量:WINDOW_HANDLE和NO_OPTIONS。WINDOW_HANDLE是BrowseForFolder方法所需的常量,NO_OPTIONS则只是通知脚本我们要显示标准的“浏览文件夹”对话框。之后,我们创建Shell.Application对象的实例,然后使用下面这行代码来显示该对话框:
SetobjFolder=objShell.BrowseForFolder_
(WINDOW_HANDLE,"Selectafolder:",NO_OPTIONS)
在对话框显示之后,它将一直等到我们选择一个文件夹并单击确定。然后我们使用如下两行代码来实现:1)创建对选定文件夹的对象引用;以及,2)将文件夹路径存储到变量strPath中:
SetobjFolderItem=objFolder.Self
strPath=objFolderItem.Path
我们现在只需调用专用于打开Windows资源管理器的Explore方法。通过将变量strPath作为单独的参数传递,这样会使得Windows资源浏览器在打开时焦点定位在C:\Scripts上:
objShell.ExplorestrPath
这说明了什么呢?这说明现在您可以使用命令提示符打开Windows资源管理器,也可以使用GUI打开Windows资源管理器,这完全取决于您。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号