vbscript下调用 Dir 命令的方法

问:

嗨,Scripting Guy!我想做一些看上去非常简单的事情:在脚本中调用 dir 命令。但是好像不起作用。怎样实现我的想法呢?

-- CR, 墨西哥城,墨西哥

答:

你好, CR.从你的邮件来看,你想做一件类似如下所示的简单工作:

Set objShell = CreateObject("Wscript.Shell") objShell.Run("dir"), 1, TRUE

但是,您并没有得到一个当前文件夹中所有文件的列表,而是得到了一条信息 The system cannot find the file specified(系统无法找到指定的文件)。为什么会这样呢?

出现这个问题的原因是这样的:您的计算机中实际上 并没有 一个叫做“Dir”的文件。您可以搜索 dir.exe 或 dir.com;肯定无法找到它们。实际上,dir 是命令行外壳(cmd.exe 或 command.exe,具体情况根据所运行 Windows 的版本而定)的一个内部命令。也就是说,dir 命令只能在命令行窗口中使用。为了证明这一点,请打开命令行窗口,输入 dir,然后按 ENTER 键。您应该看到当前目录下的所有文件和文件夹列表。现在,打开运行 对话框,输入dir ,然后按 ENTER 键。您将看到一条如下所示的错误信息:

但是,这并不意味着您很不走运。实际上 还是 有办法在脚本中调用 Dir 命令的;只不过您必须足够聪明。由于 dir 是一个内部命令,所以您只能调用命令行外科,然后将 Dir 作为一个命令行参数传递给它。让我们看一个利用了这个技巧的脚本,然后具体解释一下它的工作原理:

Set objShell = CreateObject("Wscript.Shell") objShell.Run("%comspec% /k dir"), 1, TRUE

脚本的第一行简单创建了 WSH Shell 对象的一个实例,然后在第二行使用 Run 方法调用 dir 命令。但是,请注意:我们没有直接指定 dir;而是指定了 %comspec% /k dir。该命令字符串可以被分解为下面这样:












%comspec%

打开一个命令行窗口。%comspec% 是一个指向当前命令行外壳的环境变量。通过使用 %comspec%,您不必担心命令行外壳是 cmd.exe 还是 command.exe;%comspec% 会自动选择正确的一个。

/k

在调用 Dir 命令后,确保窗口始终保持打开。这就是 /k 参数的用处。如果我们想要确保命令窗口会在 Dir 命令调用完成后被自动关闭,应该将 /k (keep) 修改为 /c (close)。

dir

运行 dir 命令。

(0)

相关推荐

  • vbscript下调用 Dir 命令的方法

    问: 嗨,Scripting Guy!我想做一些看上去非常简单的事情:在脚本中调用 dir 命令.但是好像不起作用.怎样实现我的想法呢? -- CR, 墨西哥城,墨西哥 答: 你好, CR.从你的邮件来看,你想做一件类似如下所示的简单工作: Set objShell = CreateObject("Wscript.Shell") objShell.Run("dir"), 1, TRUE 但是,您并没有得到一个当前文件夹中所有文件的列表,而是得到了一条信息 The s

  • Java调用Shell命令的方法

    本文实例讲述了Java调用Shell命令的方法.分享给大家供大家参考.具体如下: 近日项目中有这样一个需求:系统中的外币资金调度完成以后,要将调度信息生成一个Txt文件,然后将这个Txt文件发送到另外一个系统(Kondor)中.生成文件自然使用OutputStreamWirter了,发送文件有两种方式,一种是用写个一个类似于FTP功能的程序,另外一种就是使用Java来调用Shell,在Shell中完成文件的发送操作.我们选择后一种,即当完成外币资金的调度工作后,用Java的OutputStrea

  • Go语言中调用外部命令的方法总结

    目录 引子 运行命令 显示输出 显示到标准输出 输出到文件 发送到网络 保存到内存对象中 输出到多个目的地 运行命令,获取输出 分别获取标准输出和标准错误 标准输入 环境变量 检查命令是否存在 封装 总结 引子 在工作中,我时不时地会需要在Go中调用外部命令.前段时间我做了一个工具,在钉钉群中添加了一个机器人,@这个机器人可以让它执行一些写好的脚本程序完成指定的任务.机器人倒是不难,照着钉钉开发者文档添加好机器人,然后@这个机器人就会向一个你指定的服务器发送一个POST请求,请求中会附带文本消息

  • 批处理模式下运行 top 命令的方法

    top 命令 是每个人都在使用的用于 监控 Linux 系统性能 的最好的命令.你可能已经知道 top 命令的绝大部分操作,除了很少的几个操作,如果我没错的话,批处理模式就是其中之一. 大部分的脚本编写者和开发人员都知道这个,因为这个操作主要就是用来编写脚本. 如果你不了解这个,不用担心,我们将在这里介绍它. 什么是 top 命令的批处理模式 批处理模式允许你将 top 命令的输出发送至其他程序或者文件中. 在这个模式中,top 命令将不会接收输入并且持续运行,直到迭代次数达到你用 -n 选项指

  • cygwin 在windows下使用linux命令的方法

    但是cygwin过于复杂庞大,下载比较费劲,本人最终没有下载,也没有用过.个人感觉GunWin32是一个不错的选择,GnuWin32使windows用户可以在命令行窗口中使用各种各样的linux命令,就跟使用普通的windows命令一样简单. 1.下载GnuWin32,GnuWin32的安装文件(GetGnuWin32-0.6.3.exe)下载地址:http://sourceforge.net/projects/getgnuwin32/,官网地址:http://gnuwin32.sourcefo

  • Linux下的Grep命令使用方法详细介绍

    1. grep简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.Unix的grep家族包括grep. egrep和fgrep.egrep和fgrep的命令只跟grep有很小不同.egrep是grep的扩展,支持更多的re元字符, fgrep就是 fixed grep或fast grep,它们把所有的字

  • 用cwrsync同步windows下数据的简单配置方法

    cwrsync下载地址 http://sourceforge.net/projects/sereds/files/cwRsync 或者到 s.jb51.net下载 cwrsync分客户端和服务端两部分,拿cwrsync 4.0.版来说,分别对应cwRsync_4.0.5_Installer.zip和cwRsyncServer_4.0.5_Installer.zip 安装: 客户端安装比较简单,一直下一步就可以了. 服务端安装到Service Account这一步的时候,这一步会建立cwrsync

  • Python下调用Linux的Shell命令的方法

    有时候难免需要直接调用Shell命令来完成一些比较简单的操作,比如mount一个文件系统之类的.那么我们使用Python如何调用Linux的Shell命令?下面来介绍几种常用的方法: 1. os 模块 1.1. os模块的exec方法族 Python的exec系统方法同Unix的exec系统调用是一致的.这些方法适用于在子进程中调用外部程序的情况,因为外部程序会替换当前进程的代码,不会返回.( 这个看了点 help(os)  --> search "exec" 的相关介绍,但是没

  • java执行windows下cmd命令的方法

    本文实例讲述了java执行windows下cmd命令的方法.分享给大家供大家参考. 具体实现代码如下: 复制代码 代码如下: //获取运行时 Runtime rt = Runtime.getRuntime(); //获取进程 Process p = rt.exec(String[] cmdarray);//或者 Process p = rt.exec(String cmd); //如果p不为空,那么要清空 if(null!=p){destory p.destory(); p=null; } 例如

  • python下调用pytesseract识别某网站验证码的实现方法

    一.pytesseract介绍 1.pytesseract说明 pytesseract最新版本0.1.6,网址:https://pypi.python.org/pypi/pytesseract Python-tesseract is a wrapper for google's Tesseract-OCR ( http://code.google.com/p/tesseract-ocr/ ). It is also useful as a stand-alone invocation scrip

随机推荐