当前位置: 首页 > 图文教程 > 脚本技术 > VBScript > 用vbs实现在启动 Windows 资源管理器时打开特定文件夹

VBScript
vbs在网页中显示服务
vbs得没公开对象
unpack.vbs
使用批处理文件异地备份数据库(最近几天的数据)
VBScript 中的字节数据操作函数
切换dos并dir的vbs
杀毒的对vbs相当敏感 免杀
多进程的vbs脚本
Windows管理脚本学习
15分钟提醒一次,珍惜时间啊
从一个VBS脚本学习一点点东西
exe2swf 工具(Adodb.Stream版)
使用脚本自动修改ip设置
深入挖掘Windows脚本技术
用VBSCRIPT控制ONSUBMIT事件
VBS中Select CASE的其它用法
vbscript 可以按引用传递参数吗?
下载文件到本地运行的vbs
飘叶千夫指源代码,又称qq刷屏器
SendKeys参考文档

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-11   浏览: 47 ::
收藏到网摘: n/a

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 资源管理器,这完全取决于您。