2017-02-24 6 views
0

System.Diagnostic.Process를 사용하여 명령을 실행하는 코드가 있습니다. 그러나 동일한 코드를 사용하여 nbtstat를 실행하려고하면 아무 것도 반환하지 않습니다 (둘 다 예외가 있음). hostname (예제)을 실행하면 호스트 이름이 반환됩니다.System.Diagnostic.Process를 사용하여 nbtstat을 실행할 수 없습니다.

string result = ""; 
      //string commandToExec = "hostname"; 
      string commandToExec = "nbtstat -A 10.10.10.5"; 
      System.Diagnostics.ProcessStartInfo procStartInfo = 
       new System.Diagnostics.ProcessStartInfo("C:\\Windows\\System32\\cmd.exe", "/c " + commandToExec); 
      procStartInfo.RedirectStandardOutput = true; 
      procStartInfo.UseShellExecute = false; 
      procStartInfo.CreateNoWindow = true; 
      System.Diagnostics.Process proc = new System.Diagnostics.Process(); 
      proc.StartInfo = procStartInfo; 
      proc.Start(); 
      result = proc.StandardOutput.ReadToEnd(); 

이 명령

nbtstat -A 10.10.10.5 

작품을 완벽하게 잘에서 명령 프롬프트. 나는 문제를 이해할 수 없으며 도움이 될 수있는 그물에있는 자원을 찾지 못한다. 누군가 올바른 방향으로 나를 안내 할 수 있다면 제발?

답변

0

nbtstat.exe 프로그램을 직접 호출해야합니다. CMD를 호출하여 호출 할 필요가 없습니다. 대신이 줄을 사용하십시오.

System.Diagnostics.ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo(@"c:\windows\sysnative\nbtstat.exe", "-A 10.10.10.5"); 

또한 Windows64bit 리디렉션 때문에 Sysnative를 사용합니다. 설명해 드린 바와 같이 this post

+1

감사합니다 ... 답변과 문제의 원인을 알려주십시오. – anil