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

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

相关阅读:

Oracle存储过程及TABLE表用PL/SQL备份还原

Motorola微处理器bootloader分析与应用

JSP中文乱码问题解决方法小结

FreeBSD5.0ADSL安装指南

css+js定义input_file元素的样式兼容FireFox

Jacascript和CSS实现Mac OS导航菜单

JavaScript 拖拽翻页效果代码

经典SQL语句大全

区别各种IE浏览器的css写法

冒泡算法的三种JavaScript表示

javascript面向对象——定义类或对象的几种方式

利用CSS框架进行高效率的站点开发 Elements

Windows下JSP开发环境的配置

ajax下RegisterClientScriptBlock使用

php如何运行vbs文件,HTML_用vbs实现在启动 Windows 资源管理器时打开特定文件夹,my-script.vbs c:\scripts 在文件夹 - phpStudy...相关推荐

  1. 操作无法完成,因为已在Windows资源管理器中打开。(YunShellExtV164.dll文件无法删除)

    因为在电脑上来回安装卸载百度网盘,导致有些文件没有卸载干净,在安装路径里会留下一个dll文件怎么删都删除不掉,会显示操作无法完成,因为已在Windows资源管理器中打开. 这种情况下重启是没有用的,重 ...

  2. Window删除dll文件时提示“操作无法完成,因为文件已在Windows 资源管理器中打开”

    问题描述 Windows删除dll文件时提示"操作无法完成,因为文件已在Windows 资源管理器中打开". 但是在资源管理器里面找不到这个进程,此时可以使用CMD的tasklis ...

  3. 删除文件时提示已在windows资源管理器中打开怎么办?

    删除文件时提示已在windows资源管理器中打开的原因是系统错误导致的,具体解决方法步骤如下: 1.首先打开计算机,在计算机桌面下方任务栏鼠标右键点击一下,在弹出来的选项点击[启动任务管理器]. 2. ...

  4. 软件卸载后残留的文件无法删除(在Windows资源管理器中打开)解决方案

    软件卸载后在软件安装路径发现有残留,但是删除的时候提示无法删除.在Windows资源管理器中打开. 解决方案: window键+R 打开命令行 输入tasklist /m文件名.dll(注意有空格), ...

  5. 操作无法完成,因为文件已在windows资源管理器中打开

    今天百度网盘无响应,考虑到很久没用了就打算卸了重新安装.卸载后出于习惯去查看了下原文件夹,发现有个dll还未删除,删除时显示"操作无法完成,因为文件已在windows资源管理器中打开&quo ...

  6. 无法删除文件,因为已在Windows资源管理器中打开

    按住ctrl+alt+delete,选择"任务管理器",再打开"详细信息",找到并选中进程中的"explorer.exe",点击右键结束任务 ...

  7. win7系统 在删除文件时提示“操作无法完成,因为文件已在windows资源管理器中打开”

    https://zhidao.baidu.com/question/616889197371830532.html 1.按ctrl+alt+delete打开任务管理器,依次进程–找到explorer. ...

  8. 天正lisp文件夹_如何在AutoCAD中从Windows资源管理器中打开图形文件夹位置

    涵盖的产品和版本 AutoCAD 2002, AutoCAD 2004, AutoCAD 2005, AutoCAD 2006, AutoCAD 2007, AutoCAD 2008, AutoCAD ...

  9. windows资源管理器对文件右键未响应!电脑小白求救[哭唧唧]!!!

    windows资源管理器对文件右键未响应!电脑小白求救[哭唧唧]!!! 右键文件直接转圈圈无响应! windows资源管理器 对任何文件和文件夹右键都未响应,文件可以拷出到U盘:桌面右键正常,文件双击 ...

最新文章

  1. python dataframe 中位数_python下的Pandas中DataFrame基本操作(一),基本函数整理
  2. LUT 查表反色处理
  3. java 多线程经典例子——生产者与消费者的问题
  4. 44、生鲜电商平台-Java后端生成Token架构与设计详解
  5. java mouselistener,Java MouseListener接口
  6. Eclipse离线安装Java Decompiler插件
  7. java扶贫,基于jsp的扶贫网站-JavaEE实现扶贫网站 - java项目源码
  8. winform npoi 将execl转换成datatable,导入数据库
  9. 小甲鱼python官网-小甲鱼零基础入门学习Python
  10. 微软Win10最新补丁KB5017380更新了什么?
  11. 无法访问其它家庭组计算机,Win7电脑同一个家庭组或者工作组,电脑无法相互访问...
  12. PHP-简单理解递归
  13. 活体检测 使用OpenCV进行 运动检测
  14. 数学实验matlab 韩明,数学实验(MATLAB版)[韩明,王家宝,李林 编著] 2012年版
  15. 5G/4G外置型无线通信模块
  16. win10内存占用率过高怎么办_win10 软件推荐
  17. 2018年高级职称计算机考试,职称计算机考试_2018年职称计算机考试EXCEL巩固题练习...
  18. 转载]“不能打开暂存盘文件,因为该文件已锁定”解决办法
  19. Python 在程序中定义函数fun(s)
  20. java发送邮件,可附带附件(可发送普通文本或html,可带抄送人)

热门文章

  1. Vertx学习一:这玩意是到底是个啥
  2. 2019几大主流的前端框架,几款目前最热门的前端框架
  3. STM32入门-学习STM32要掌握的内容
  4. 可以有效改进项目管理技能的十个过程
  5. C语言中的interrupt
  6. LINGO学习笔记01
  7. 认认真真学习STL之string
  8. oracle 获取当月的1号_Oracle 获取当前年、月、日
  9. ubuntu安装shutter
  10. nodejs shell交互_NodeJs交互式命令行工具Inquirer.js-开箱指南