2015-03-26 4 views
-2

Я отправляю команду в окно CMD с помощью WriteLine, и я хочу использовать вывод, который является результатом этого, чтобы установить значение переменной. Любые предложения приветствуются. Благодаряполучить первые 4 символа из console.Writeline result C#

var ping new Ping(); 
string ip = "192.168.58.6"; 
var reply =ping.Send(ip); 

if (reply.Status == IPSstatus.Success) 
{ 
    Console.WriteLine("Nas is Pingable"); 
    Console.WriteLine("Starting TSM install 8)"); 
    string HostType = Console.WriteLine("hostname"); 
    Thread.Sleep(10000); 
    LanuchCommandLineApp(); 
} 
else 
{ 
    Console.WriteLine("Not able to ping Nas Server"); 
    Console.WriteLine("exit"); 
} 
+0

Добро пожаловать на переполнение стека. Ваш код не компилируется. Кроме того, существует 5 вызовов 'Console.WriteLine()'. Какая из них вы хотите получить из первых 4 символов? –

+0

Я не добавлял полный код только к той части, с которой я столкнулся, строка HostType = Console.WriteLine («hostname»); Неправильно, но я не знаю, как это сделать. Я хочу получить 4 символа из результатов записи («hostname»); –

+2

Ну, 'Console.WriteLine (" hostname ")' пишет 'hostname'. Первые 4 символа 'hostname' являются' 'hostname" .Substring (0,4) ', который пишет' host'. Это то, что вам нужно? –

ответ

0

Ну вы можете использовать ProcessInfo.RedirectStandartOutput перенаправить вывод из console.Then вы должны использовать Process.StandardOutput для чтения с выхода, а затем взять его подстроку.

Вы можете обратиться к this example [MSDN]

+0

Когда я отправляю console.writeline ("hostname"); результаты в cmd - это имя хоста серверов. Первые 4 символа возвращаемого значения отправки «hostname» на консоль - это то, что мне нужно назначить для переменной, поскольку первые 4 символа решили, какой тип сервера он имеет. –

+0

Спасибо, ребята, откликаясь на ответ Грега и ответ Томаса, я смог заставить его работать. !! –

0

Ваш код не будет компилироваться, потому что вам не хватает знака равенства, при построении Ping(). У вас должна быть линия: var ping = new Ping();. Вы не указываете, какой из Console.WriteLine(); вы хотите разобрать, поэтому я буду принимать имя хоста.

Вы хотели бы, скорее всего, прочитать указанный вход, а не писать. Но на Ваш вопрос, как вы получите первые четыре символа и удалить все остальное:

var example = "Hello, how are you?"; 
var filter = example.Substring(0, 5); 
// Output: Hello 

Substring начнется в индексе 0 затем захватить содержимое вплоть до пятого индекса. Усекая все остальное, вы можете найти много информации о Microsoft Developer Network.

+0

Даже если вы добавляете знак равенства в ping, он не компилируется из-за 'string HostType = Console.WriteLine (« hostname »);'. Интересно, почему вы отвечаете на такой еще неясный вопрос ... –

+0

@ThomasW. Ну, это предполагает, что 'HostType' является фактическим классом, а не просто строковым именем. Также предположите, что это действительно 'enum' для него. Вопрос нечеткий, но ясный. Он хочет получить первое значение для строки. Точно так же, как мой ответ и ваш комментарий. – Greg

+0

Когда я отправляю console.writeline ("hostname"); результаты в cmd - это имя хоста серверов. Первые 4 символа возвращаемого значения отправки «hostname» на консоль - это то, что мне нужно назначить для переменной, поскольку первые 4 символа решили, какой тип сервера он имеет. –

Смежные вопросы