Batch file 通过批处理文件打开命令提示符调用和执行vb脚本

Batch file 通过批处理文件打开命令提示符调用和执行vb脚本,batch-file,vbscript,Batch File,Vbscript,我是一个完全的业余爱好者,当涉及到vb脚本甚至命令行,所以请与我 我已经创建了一个vb脚本send.vbs,用于使用Wshshell.sendkeys发送密钥。在这个脚本中,我将使用vsh命令进入vshell,在输入vsh后,我将获得两个选项,从中选择选项2,然后我将执行一个命令,该命令的输出将重定向到文本文件。然后我将此文件ftp到不同的服务器。现在我想安排这个vb脚本每10分钟运行一次。现在,如果我双击这个脚本文件,它只会打开一个黑色窗口,然后关闭它。不执行这些命令。但是当我手动打开一个命令

我是一个完全的业余爱好者,当涉及到vb脚本甚至命令行,所以请与我

我已经创建了一个vb脚本send.vbs,用于使用Wshshell.sendkeys发送密钥。在这个脚本中,我将使用vsh命令进入vshell,在输入vsh后,我将获得两个选项,从中选择选项2,然后我将执行一个命令,该命令的输出将重定向到文本文件。然后我将此文件ftp到不同的服务器。现在我想安排这个vb脚本每10分钟运行一次。现在,如果我双击这个脚本文件,它只会打开一个黑色窗口,然后关闭它。不执行这些命令。但是当我手动打开一个命令窗口,然后转到脚本所在的路径,然后执行它时,它工作正常,我得到了所需的输出

我尝试使用cscript send.vbs编写一个批处理文件,并计划每10分钟运行一次。但此批处理文件不运行vbscript。任何人都可以帮我写一个批处理文件,它将打开一个命令提示符,然后在该命令提示符下运行这个vb脚本。脚本如下:

Set WshShell = wscript.CreateObject("wscript.Shell")
wshshell.sendkeys "vsh"
wshshell.sendkeys "{ENTER}"
wshshell.sendkeys "2"
wshshell.sendkeys "{ENTER}"
wshshell.sendkeys "tls display agents > Agentstat.txt"
wshshell.sendkeys "{ENTER}"
wshshell.sendkeys "quit"
wshshell.sendkeys "{ENTER}"
非常感谢您的帮助。。 谢谢

给你

Set WshShell = wscript.CreateObject("wscript.Shell")
WshShell.Run "cmd"
WScript.Sleep 100 
WshShell.AppActivate "C:\Windows\system32\cmd.exe" 
WScript.Sleep 100 
wshshell.sendkeys "vsh"
wshshell.sendkeys "{ENTER}"
wshshell.sendkeys "2"
wshshell.sendkeys "{ENTER}"
wshshell.sendkeys "tls display agents > Agentstat.txt"
wshshell.sendkeys "{ENTER}"
wshshell.sendkeys "PAUSE"
wshshell.sendkeys "{ENTER}"
wshshell.sendkeys "quit"
wshshell.sendkeys "{ENTER}"

嗨,穆蒂曼。。我试过同样的方法,但还是一样的。窗户一会儿开一会儿关。。即使我进入停顿。如果我手动打开一个命令窗口并输入这个命令,我将获得输出。但是如果我双击批处理文件本身,它不会运行。我尝试将批处理文件放置在send.vbs所在的位置以及其他位置。但是没有用。。。我是否需要在批处理文件中放置任何类型的等待或休眠,以便为vbscript运行留出一些时间???我会仔细检查每个步骤。如果将“暂停”命令添加到批处理文件的底部,请保存它,然后双击它。然后窗户会一直开着您可以尝试的另一件事是从命令提示符下运行批处理文件(与成功运行脚本的命令相同)。。pause命令确实使窗口保持打开状态,但它不会给我任何类型的错误。它只是说“按任意键继续…”。另外,如果我通过命令提示符运行批处理文件,它将不起作用。当我输入命令时,才得到输出。基本上,我得到的是vbscript需要一个打开的命令行窗口,它可以在其中运行脚本。那么有没有什么方法可以让我通过某个命令打开一个命令行窗口,然后在该窗口中执行这个脚本呢。如果您可以建议对VB脚本进行任何更改以实现相同的效果,那对我也很好..我重复了您所做的操作,并且得到了与您相同的错误(或没有错误)。这个代码部分可能是一个更简单的解决方案。