2014-02-06 78 views
0

很抱歉,如果我一直忽略了一些愚蠢的......SSH.NET不会允许这个字符串

using (var client = new SshClient("ipaddress", "USER", "PASSWORD")) 
{ 
    client.Connect(); 
    string xnatCli = @"XNATRestClient -host http://localhost:8080/xnat/ -u admin -p administrator -m PUT -remote ""/data/archive/projects/prj005/subjects/test12/experiments/visit12?xnat:petSessionData/date=12/12/12" + "\""; 

    //string list = "ls -lrt"; 

    var cmd = client.RunCommand(xnatCli); 
    cmd.Execute(); 
    var outputQuery = cmd.Result; 
    Console.Write(outputQuery); 
    Console.Read(); 
} 

亲爱developers..I'm希望有人能帮助me..I'm相当卡住想法为什么这不起作用。我已经尝试了如上图所示的RunCommand()中的ls -lrt命令。它使用腻子或从另一台Linux机器ssh'ing使用命令(xnatCli)正常工作正常。但是在这个代码实例中不起作用。 ssh.net.RunCommand()的字符串长度限制可能吗?我在做一些愚蠢的事情吗?

+0

语言是什么呢? vb.net,C +,...? – PsychoData

+0

在长行结束时它说'+“\”“;'你是指'+”“”“''或者也许只是将它加到前面的字符串部分'12/12”“” ;' – PsychoData

+0

心理......我想添加一个“在句尾..两种方式是正确的..但是,这并不能解释为什么它不会传递给runco​​mmand()..干杯.. – user3276223

回答

0

尝试使用StringBuilder的,而不是字符串:

 StringBuilder response = new StringBuilder(); 

     SshClient client = new SshClient("host", "user", "pass"); 
     client.Connect(); 
     var cmd = client.RunCommand("ls -la"); 
     cmd.Execute(); 
     response.Append(cmd.Result); 
     client.Disconnect(); 

希望它能帮助。

-1

试试这个代码:

string xnatCli = "your command here"; 

SshCommand cmd = client.CreateCommand(xnatCli); 

cmd.Execute(); 
相关问题