一行中不能 运行 多个命令

Cannot run multiple commands in one line

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

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也不行。

如何使用一行执行它们?

谢谢

这种情况正在发生,因为命令行和 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 是您的命令,但这可能很棘手。

参考资料

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

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

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

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

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

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

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

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

因为在你的情况下,你想要 运行 第一个命令,然后在其中执行其他操作;无法使用以上任何一种。

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

你可以这样做:(WinSCP.com /script=<script_path>) && exit

WinSCP.com command还有很多选择。