繁体   English   中英

无法使用System.Diagnostic.Process运行nbtstat

[英]Unable to run nbtstat using System.Diagnostic.Process

我有一段代码,使用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

从命令提示符完美地运行。 我无法理解这个问题,也无法在网上找到可能有用的资源。 如果有人能指导我正确的方向吗?

你应该直接调用nbtstat.exe程序,不需要调用CMD来调用它。 所以请改用这条线;

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

由于Windows64bit重定向,我也使用Sysnative。 正如这篇文章中提到的那样

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM