当前位置: 首页 > 图文教程 > 脚本技术 > VBScript > vbscript下调用 Dir 命令的方法

VBScript
VBS中SendKeys的基本应用
VBScript教程 第十四课在VBScript中使用对象
VBScript教程 第十三课 VBScript与窗体
VBScript教程 第十二课VBScript页面的简单样例
VBScript教程 第十一课深入VBScript
VBScript教程 第十课 VBScript编码约定
VBScript教程 第九课VBScript过程
VBScript教程 第八课 使用循环语句
VBScript教程 第七课使用条件语句
VBScript教程 第六课VBScript运算符
VBscript教程 第五课 VBScript常数
VBScript教程 第四课VBScript变量
VBScript教程 第三课VBScript数据类型
VBScript教程 第二课在HTML页面中添加VBscript代码
VBScript教程 第一课什么是VBScript
VBScript的入门学习资料
VBScript语法速查及实例说明
MsgBox函数语言参考
VBS教程:正则表达式简介 -后向引用
VBS教程:正则表达式简介 -选择与编组

VBScript 中的 vbscript下调用 Dir 命令的方法


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

问:

嗨,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 键。您将看到一条如下所示的错误信息:

Hey, Scripting Guy!

但是,这并不意味着您很不走运。实际上 还是 有办法在脚本中调用 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 命令。