无法在一行中运行多个命令

时间:2016-05-17 18:43:14

标签: cmd winscp

我试图在一行中运行多个命令。代码如下。

WinSCP.com
open user:pw@address
lcd C:\Users\xx\Desktop
get *.xlsx
exit

如果我一个接一个地运行它,它会起作用。但是,如果我想使用一行将它们全部一起运行,那么无论我使用的是;还是&,都会失败。

例如,如果我运行WinSCP.com & open user:pw@address,则只会执行第一部分。

WinSCP.com; open user:pw@address也不起作用。

如何使用一行执行它们?

由于

3 个答案:

答案 0 :(得分:2)

这种情况正在发生,因为命令行和winscp.com都是程序。当您逐个输入命令时,您将启动winscp.com,然后输入的命令将直接进入WinSCP。当您尝试一次执行所有命令时,它将启动WinSCP并等待它完成然后执行下一个命令。

您绝对可以使用命令创建文本文件,并将其另存为script.txt

open user:pw@address
lcd C:\Users\xx\Desktop
get *.xlsx
exit

然后将其传递给winscp.com应用程序,如下所示:

winscp.com /script=script.txt

可以使用/command cmd1 cmd2 ...一次发送所有命令,其中cmd1,2是你的命令,但它可能很棘手。

<强>参考

答案 1 :(得分:0)

您可以将命令序列放在WinSCP使用的脚本文件中,并使用命令序列调用它:

WinSCP.com /script="C:\Users\{name}\Documents\Scripts\{SomeFileName}.scp"

我发现更容易跟踪您正在做的事情,并使命令序列更容易阅读。

答案 2 :(得分:0)

这些是在一行上运行多个命令的所有可能方法:

在命令提示符下使用command1 & command2执行第一个命令,然后执行第二个命令

command1 && command2它运行第一个命令,然后仅在第一个命令成功完成时运行第二个命令

command1 || command2它运行第一个命令,然后仅在第一个命令未成功完成时运行第二个命令(收到大于零的错误代码)。

(command1 & command2)用于分组或嵌套多个命令

因为在你的情况下,你想要运行第一个命令,然后用它进行其他操作;不可能使用上述任何一种。

您必须编写一个脚本,您可以使用命令在同一行中调用它。

您可以执行以下操作:(WinSCP.com /script=<script_path>) && exit

WinSCP.com command中还有更多选项。

相关问题