我试图在一行中运行多个命令。代码如下。
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
也不起作用。
如何使用一行执行它们?
由于
答案 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中还有更多选项。