【问题标题】:How to execute multiple commands in command prompt using batch file?如何使用批处理文件在命令提示符下执行多个命令?
【发布时间】:2014-03-31 09:23:04
【问题描述】:

我正在编写一个批处理文件来执行命令(执行Bitvise SFTP)

start cmd /k sftpc [SERVERNAME] -pk=1

之后命令提示符询问以下内容

Accept and (S)ave/(A)ccept for This Session/(C)ancel (S/A/C)?

现在批处理文件应该以“A”的形式执行下一个命令来完成进程。

我想自动化在命令提示符中提供输入“A”的过程。批处理文件如何连续执行命令?

更新:

接受会话后,还有两条命令需要执行,

cd [RemoteLocation]


get *.*

如何在使用同一个批处理文件的前两个命令之后自动执行这两个命令?

【问题讨论】:

    标签: batch-file command-prompt


    【解决方案1】:

    您可以尝试将“A”发送到sftpc:

    start cmd /k "echo A | sftpc [SERVERNAME] -pk=1"
    

    我没有sftpc,我只是想提出一个建议来帮助...

    更新:

    如果您有多个命令要给sftpc,您可能会发现以下方法之一有效,具体取决于sftpc 的工作方式 - 我在这里盲目工作 - 仍然没有或不想要 sftpc .

    start cmd /k "echo A & echo cd somewhere & echo get *.* | sftpc [SERVERNAME] -pk=1"
    

    ...把“某处”改成你想去的地方。

    或许:

    将以下内容保存在名为ftp.cmd的文件中

    A
    cd somewhere
    get *.*
    

    那就试试吧:

    start cmd /k "sftpc [SERVERNAME] -pk=1 < ftp.cmd"
    

    【讨论】:

    • 这解决了您的问题吗?如果是这样,您是否可以考虑将其作为答案(通过单击投票分数附近的空心复选标记),以便我得到一个可爱的绿色大勾号?如果没有,请说出什么不起作用,我会尽力为您提供进一步的帮助。谢谢。
    • 它有效,但是对于必须执行的其他命令,我无法遵循相同的方式。我已经接受了这个作为答案,因为它证明了我的问题,但是在“echo A”之后还有一些其他命令要执行,这些命令的工作方式不同。用“echo A”确认后,我需要执行“cd [Location]”。怎么办?
    • 还有多少命令?如果您要执行的命令并在您的问题中以粗体写下“已更新”,您是否可以单击问题下方的“编辑”并使用其余命令进行更新,以便人们再看一眼。
    • 我已经更新了我的答案 - 请让我和世界知道它是怎么回事。
    • Get . 已执行,但我可以看到“会话因用户请求而终止。”在手动过程中,Get . 有效。我认为会话已结束,我们是否需要暂停或等待 cmd 运行并执行 get 命令???
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-30
    • 2013-11-08
    • 2019-06-29
    • 2021-08-14
    相关资源
    最近更新 更多