簡體   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