C# · 12月 22, 2021

使用C#捕获nslookup shell输出

我有一个命令行进程,我想在C#中自动化和捕获.

在命令行中,我键入:

nslookup

这会启动一个shell,它给我一个>提示.在提示符下,我输入:

ls -a mydomain.local

这将返回主DNS服务器及其连接的物理机的本地CNAME列表.

我想做的是从C#自动化这个过程.如果这是一个简单的命令,我只会使用Process.StartInfo.RedirectStandardOutput = true,但第二步的要求正在绊倒我.

解决方法 ProcessStartInfo si = new ProcessStartInfo(“nslookup”);si.RedirectStandardInput = true;si.RedirectStandardOutput = true;Process nslookup = new Process(si);nslookup.Start();nslookup.StandardInput.WriteLine(“ls -a mydomain.local”);nslookup.StandardInput.Flush();// use nslookup.StandardOutput stream to read the result.