【问题标题】:Calling and executing vb script by opening command prompt through Batch file通过批处理文件打开命令提示符调用并执行vb脚本
【发布时间】:2013-09-04 07:35:03
【问题描述】:

在 vb 脚本甚至命令行方面,我是一个完全的业余爱好者,所以请多多包涵..

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

我尝试用 cscript send.vbs 编写一个批处理文件,并安排它每 10 分钟运行一次。但是这个批处理文件不运行 vbscript。 any1 可以帮助我编写一个批处理文件,它将打开一个命令提示符,然后在该命令提示符下运行 thi 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}"

任何帮助都非常感谢.. 谢谢!!

【问题讨论】:

    标签: batch-file vbscript


    【解决方案1】:

    给你...

    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}"
    

    【讨论】:

    • 嗨 Mootieman.. 我尝试了同样的事情,但仍然是同样的事情。窗口会立即打开并关闭.. 即使我进入暂停状态。如果我手动打开命令窗口并输入此命令,我将得到输出。但如果我双击批处理文件本身,它不会运行。我尝试将批处理文件放在 send.vbs 所在的位置以及其他位置。但没用...我是否需要在批处理文件中放置任何等待或睡眠,以便允许 vbscript 有时间运行????
    • 我会仔细检查每一步。如果将“暂停”命令添加到批处理文件的底部,请保存并双击它。然后窗口将保持打开状态。 - 您可以尝试的另一件事是从命令提示符运行批处理文件(与您成功运行脚本相同)
    • HI.. pause 命令确实使窗口保持打开状态,但它没有给我任何错误。它只是说“按任意键继续..”。此外,如果我通过命令提示符运行批处理文件,它不起作用。当我输入命令时,我才会得到输出..
    • 基本上我得到的是 vbscript 需要一个打开的命令行窗口,它可以在其中运行脚本。那么有什么方法可以让我通过一些命令打开命令行窗口,然后在该窗口中执行这个脚本。如果您可以建议对 VB 脚本进行任何更改以实现相同的效果,那我也很好..
    • 我复制了你正在做的事情,我得到了和你一样的错误(或没有错误)。这个代码部分可能是一个更简单的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-26
    • 2012-08-30
    • 2014-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多