2016-05-17 38 views
0

我想在一行中運行多個命令。代碼如下。不能在一行中運行多個命令

WinSCP.com 
open user:[email protected] 
lcd C:\Users\xx\Desktop 
get *.xlsx 
exit 

如果我逐一運行它們,它將起作用。但是,如果我想用一條線將它們全部一起運行,則無論使用的是;還是&,都會失敗。

例如,如果我運行WinSCP.com & open user:[email protected],只會執行第一部分。

WinSCP.com; open user:[email protected]也不起作用。

如何使用一行執行它們?

感謝

+0

[WinSCP腳本不能在批處理文件中執行]的可能重複(http://stackoverflow.com/questions/31945476/winscp-script-not-executing-in-batch-file) –

回答

2

發生這種情況,因爲這兩個命令行和winscp.com是程序。當你逐個輸入命令時,你開始winscp.com並且下一個輸入的命令直接進入WinSCP。當你試圖立即執行所有命令時,它將啓動WinSCP並等待它完成,然後執行下一個命令。

你絕對可以創建你的命令的文本文件並將其保存爲script.txt

open user:[email protected] 
lcd C:\Users\xx\Desktop 
get *.xlsx 
exit 

然後將它傳遞給winscp.com應用程序是這樣的:

winscp.com /script=script.txt 

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

參考

+1

winscp.com/script = script.txt的作品。謝謝 – NewGuyComesIn

0

你可以把命令序列中通過的WinSCP和使用的腳本文件使用命令序列調用它:

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

我發現跟蹤自己在做什麼並保持命令序列更易於閱讀更容易。

+0

感謝您的回答。但我已經投了安德魯了。我把它們放在一行中的原因是我想將它們放入VBA中,因此用戶只需按一下「按鈕」即可加載文件。 – NewGuyComesIn

0

這些是在一行上運行的多個命令的所有可能的方式:

當在命令提示使用command1 & command2,它 執行第一命令,然後第二命令

command1 && command2它運行第一個命令,然後只有在第一個命令成功完成時運行第二個命令

command1 || command2它運行在第一命令,然後運行第二命令僅當所述第一命令沒有成功完成(大於零接收到錯誤代碼更大)。

(command1 & command2)用於組或嵌套多個命令

由於你的情況,你想要運行第一個命令,然後執行其他操作;這是不可能的使用任何上述。

您必須編寫一個腳本,您可以使用命令在同一行中調用該腳本。

你可以做這樣的事情:(WinSCP.com /script=<script_path>) && exit

有在WinSCP.com command更多的選擇。