vbs run命令没有输出

时间:2011-12-01 20:51:54

标签: vbscript

好的,我创建了一个小脚本来调用“net file”并将输出泵送到文件中。文件名中没有空格,当我以交互方式运行时,一切似乎都没问题。所以我运行以下操作,没有结果也没有错误:

set oWShell = CreateObject("WScript.Shell")
owshell.run "net file > C:\openfiles.txt"
Set owShell = nothing

现在如果稍微修改它以显示执行相同的命令(并保持我的命令窗口打开)它就像预期的那样工作(除了它保持cmd窗口打开,我不能拥有)

set oWShell = CreateObject("WScript.Shell")
owshell.run "%comspec% /k net file > C:\openfiles.txt"
Set owShell = nothing

一定是显而易见的,我才会失踪。我只在蓝色的月亮中触摸过一次vbs,所以它不是我以前习惯使用的东西。

任何帮助将不胜感激!提前谢谢!

2 个答案:

答案 0 :(得分:2)

您需要一个shell(即%comspec%)来获取重定向等shell功能;你要求的是持久化窗口:/ k让shell保持打开状态(尝试使用/ c)你应该使用.Run方法的第二个和第三个参数来获取一个隐藏的窗口(并且可能在等待之前的过程)你摧毁了owShell。)

答案 1 :(得分:0)

看看Run。改变

owshell.run "%comspec% /k net file > C:\openfiles.txt"

owshell.run "%comspec% /c net file > C:\openfiles.txt", 0, FALSE

这将隐藏cmd并继续执行脚本的其余部分...如果您要等待命令完成,请将FALSE更改为TRUE

还要记住,有些机器很有趣,可以直接将文件写入C:\。可能会创建一个测试文件夹并写入其中!