【问题标题】:Call a new batch file or add VB script?调用新的批处理文件或添加 VB 脚本?
【发布时间】:2013-04-21 14:07:40
【问题描述】:

我下面的内容允许用户从批处理菜单中输入设备的名称,然后它将在新的命令窗口中远程登录并自动登录。在下面的批处理运行后,我希望用户成为提示输入新变量(主机)。一旦用户输入新变量(主机),我希望批处理继续,在同一窗口中,并 ping 新变量(主机)。

我尝试了 call 命令,但无论我尝试哪种方式,它都会打开一个新窗口。我需要一个 vbscript 吗?我有点迷茫。

@echo off
:A
color 0A
Cls
echo.
echo.
echo.
echo Putty SSH
echo.
echo.
echo.
set /p computer=HOST:
start putty.exe -ssh xxxxxx@%computer% -pw xxxxxx
goto:options

我接下来要介绍的示例。我不知道如何将下面的行添加到上面的批处理脚本中,并使它们在“start putty.exe -ssh xxxxxx@%computer% -pw xxxxxx”打开的窗口中执行。我希望 %computer% 是一个新的变量。不是来自上面批次中的变量。

"

set /p computer=HOST:
ping %computer%

【问题讨论】:

  • 如果我理解正确,您想阅读用户输入。 This question 似乎对此有答案(这反过来又链接到另一个类似的问题)。
  • 不完全是。我添加了更多关于我想要完成的内容。对不起,我不是很清楚,但这对我来说是新的。谢谢!

标签: windows


【解决方案1】:

遗憾的是,无法从批处理文件中执行此操作。 一旦您从批处理中“调用命令”,它就会被视为独立于您之前执行或稍后执行的其余批处理调用的东西。

我建议即使在第一次使用时也创建一个 vbs 文件,并将其用于您想要的所有操作。

这里有一个小示例代码,供您了解如何“管理”从 vbs 启动的命令窗口:

Option Explicit

Dim oShell

Set oShell = CreateObject("WScript.Shell") 
REM 1 == windowstate normal, false==don't wait for app to finish running
Call oShell.Run ("cmd /K CD C:\", 1, false)
Call WScript.Sleep (300)

REM you don't need it right after cmd.exe started up as it'll be
REM focused/activated by OS but may need later
REM Call oShell.AppActivate ("cmd.exe")

Call oShell.SendKeys ("echo yay! {ENTER}")

SET oShell = Nothing

您可以找到可以与“SendKeys”功能一起使用的命令列表: http://msdn.microsoft.com/en-us/library/8c6yea83%28v=vs.84%29.aspx

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2020-04-27
    • 2014-03-10
    • 2017-01-22
    • 2014-10-14
    • 2015-11-30
    • 1970-01-01
    相关资源
    最近更新 更多