好的,我创建了一个小脚本来调用“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,所以它不是我以前习惯使用的东西。
任何帮助将不胜感激!提前谢谢!
答案 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:\。可能会创建一个测试文件夹并写入其中!