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

VBScript
用vbs脚本来关闭 HTML 页面的代码
用vbs实现确定是否安装了某个特定的补丁
用vbs确定用户的登录名的代码
用vbs找到映射到共享的所有驱动器并重新映射它们
可以从一台远程服务器运行 SP2 安装程序Install.vbs
用vbs判断一个日期是否在指定的时段内
vbs+hta中实现在单个 onClick 参数中包括多个子例程的代码
vbs中实现启动两个应用程序,一直等到其中一个程序结束,然后关闭另一个?
用vbs实现对文本文件中的项计数
用vbs对文本文件的内容进行排序
用vbscript把 Word 文档保存为文本文件的代码
用vbs返回 Internet Explorer 的下载控件和 Applet 的列表
用vbscript合并多个文本文件的代码
用vbscript防止本地用户更改其密码
用vbs针对一个 IP 地址范围运行脚本
用vbs 实现从剪贴板中抓取一个 URL 然后在浏览器中打开该 Web 站点
使用vbscript脚本在表单中进行选择的代码
一个把任何文件转成批处理的vbs脚本Any2Bat.vbs
windows脚本调试howto的方法
注册表的禁用与解锁方法集合

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-11   浏览: 78 ::
收藏到网摘: 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 资源管理器,这完全取决于您。