2016-10-25 11 views
0

は考える:セッションログはこれで、コマンドが正しいかを示しコンサルティングStdinリダイレクトを使用するWinSCP ExecuteCommand?

var linuxCommmand = "/opt/ndmcli -x"; 
var linuxOptions = "sel stat pnum=157 detail=yes;\nquit;"; 
SSH.ExecuteCommand(String.Format("{0} <<!!\r\n{1}\r\n!!\r\n", linuxCommand, linuxOptions)); 

2016-10-25 14:12:49.433 Script: call /opt/cdunix/ndm/bin/ndmcli -x <<!! 
2016-10-25 14:12:49.433 sel stat pnum=157 detail=yes; 
2016-10-25 14:12:49.433 quit; 
2016-10-25 14:12:49.433 !! 
2016-10-25 14:12:49.433 Executing user defined command. 
2016-10-25 14:12:49.433 /opt/cdunix/ndm/bin/ndmcli -x <<!! 
2016-10-25 14:12:49.433 sel stat pnum=157 detail=yes; 
2016-10-25 14:12:49.433 quit; 
2016-10-25 14:12:49.433 !! ; echo "WinSCP: this is end-of-file:$?" 
2016-10-25 14:13:04.437 Waiting for data timed out, asking user what to do. 
2016-10-25 14:13:04.437 Asking user: 
2016-10-25 14:13:04.437 **Host is not communicating for 15 seconds. 
2016-10-25 14:13:04.437 
2016-10-25 14:13:04.437 Wait for another 15 seconds?**() 

は私がWinSCPNetのExecuteCommandで標準入力のリダイレクトを使用することができなかった理由はありますか?

ありがとうございます!

**** **** UPDATE変なふう 、私は末尾にスペース追加した場合:

var linuxCommmand = "/opt/ndmcli -x"; 
var linuxOptions = "sel stat pnum=157 detail=yes;\nquit;"; 
SSH.ExecuteCommand(String.Format("{0} <<!!\r\n{1}\r\n!!\r\n ", linuxCommand, linuxOptions)); 

をそれはすべてが正常に動作します:

2016-10-25 15:58:03.489 Script: call /opt/cdunix/ndm/bin/ndmcli -x <<!! 

2016-10-25 15:58:03.489 sel stat pnum=157 detail=yes; 
2016-10-25 15:58:03.489 quit; 

2016-10-25 15:58:03.489 !! 

2016-10-25 15:58:03.489 
2016-10-25 15:58:03.489 Executing user defined command. 
2016-10-25 15:58:03.489 /opt/cdunix/ndm/bin/ndmcli -x <<!! 

2016-10-25 15:58:03.489 sel stat pnum=157 detail=yes; 
2016-10-25 15:58:03.489 quit; 

2016-10-25 15:58:03.489 !! 

2016-10-25 15:58:03.489 ; echo "WinSCP: this is end-of-file:$?" 
2016-10-25 15:58:03.550 Script: 
2016-10-25 15:58:03.550 Script:  ************************************************************** 
2016-10-25 15:58:03.550  ************************************************************** 
2016-10-25 15:58:03.550 Script:  *               * 
2016-10-25 15:58:03.550  *               * 
2016-10-25 15:58:03.550 Script:  *   Licensed Materials - Property of IBM   * 
---- (log continues, and I get my expected output) ---- 
+0

が混乱...ここでの問題について質問がありますか? – Darren

+0

申し訳ありませんが、私の質問は最初です。私はそれをもっと明確にするために並べ替えます。ありがとう! – John

+0

'ndmcli'とは何ですか?それは何をするためのものか? 'sel'コマンドとは何ですか? –

答えて

0

新しいラインが完全にWinSCPのを混乱させます。

コマンドは実際には正しく実行されません。末尾の!!は1行に単独でなければならないので、実際には正しく実行されません。


すべてを1行に入力する必要があります。

これが動作することができます:

(echo sel stat pnum=157 detail=yes; & echo quit;) | /opt/cdunix/ndm/bin/ndmcli -x 
+0

男性自身から!私はそれを試してみましょう!ありがとう:) – John

+0

パイプ経由のエコーはうまくいきませんでした。 ndmcliはスタンドアロンの実行可能ファイルで、selの入力を期待します。stat pnum = 157 detail = yes;終了し、必要な情報を出力する。 – John

+0

コマンドには最終的なものが必要です!! \ r \ nは最終的なものの前と後の両方です。 WinSCPはコマンドを送信する前に何らかの解析を行いますか? – John

関連する問題