Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中使用shell命令#_C#_Process_Cmd - Fatal编程技术网

C# 在C中使用shell命令#

C# 在C中使用shell命令#,c#,process,cmd,C#,Process,Cmd,我有下面的代码,其中我使用DevCon.exe捕获某些内容并将其写入文件。我分析这个文件是为了满足需要 Process p = new Process(); p.StartInfo.FileName = "cmd.exe"; p.StartInfo.Arguments = "/C devcon.exe find = port *monitor* > monitor_Details.txt"; p.StartInfo.CreateNoWindow = true; p.StartInfo.Us

我有下面的代码,其中我使用DevCon.exe捕获某些内容并将其写入文件。我分析这个文件是为了满足需要

Process p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments = "/C devcon.exe find = port *monitor* > monitor_Details.txt";
p.StartInfo.CreateNoWindow = true;
p.StartInfo.UseShellExecute = true;
p.StartInfo.Verb = "runas";
p.Start();
不幸的是,使用这段代码,我看不到创建的任何文本文件。因此,尽管我提到了shell命令,但这里并没有考虑它。 同一命令在CMDLine中工作

有谁能帮忙看看出了什么问题吗

我也尝试了下面的代码,但它不起作用

Process p = new Process();
p.StartInfo.FileName = "devcon.exe";
p.StartInfo.Arguments = "find = port *monitor* > monitor_Details.txt";
p.StartInfo.CreateNoWindow = true;
p.StartInfo.UseShellExecute = true;
p.StartInfo.Verb = "runas";
p.Start();

您可以添加这些行-基于
RedirectStandardOutput

p.StartInfo.RedirectStandardOutput = true;
.....
p.Start();
string result = p.StandardOutput.ReadToEnd();

链接:

您可以添加这些行-基于
重定向标准输出

p.StartInfo.RedirectStandardOutput = true;
.....
p.Start();
string result = p.StandardOutput.ReadToEnd();

链接:

我也有同样的问题。解决方法是提供进程的用户名和密码参数以及“runas”动词。这将使新进程开始提升,并能够读取/写入文件。我没有明确的解释,但它对我很有效

p.StartInfo.Verb = "runas";
p.StartInfo.UserName = Environment.UserName;
p.StartInfo.Password = PromptUserPassword(); //Get password as SecureString 

我也有同样的问题。解决方法是提供进程的用户名和密码参数以及“runas”动词。这将使新进程开始提升,并能够读取/写入文件。我没有明确的解释,但它对我很有效

p.StartInfo.Verb = "runas";
p.StartInfo.UserName = Environment.UserName;
p.StartInfo.Password = PromptUserPassword(); //Get password as SecureString 

您应该在那里添加
UseShellExecute=false
。谢谢。但奇怪的是,我没有看到文件“monitor_Details.txt”的任何内容,这意味着尽管创建了该文件,但该文件是空的。“>”写入操作有什么问题吗?我很乐意帮助您堆叠\u指针已熄灭,可能是您的参数,可能是参数正确,因为它们在CmdPrompt中也是这样工作的。只是它们在C中不起作用:(你应该在那里添加
UseShellExecute=false
。谢谢。但奇怪的是,我没有看到文件“monitor\u Details.txt”的任何内容,这意味着尽管创建了该文件,但该文件是空的。“>有什么问题吗?”写操作?我很乐意帮助您堆栈#指针已熄灭,可能是您的参数,很可能这些参数似乎是正确的Aghilas,因为它们在CmdPrompt中是这样工作的。只是它们在C中不起作用,这里:(您正在设置当前目录吗?如果没有,您的相对位置可能不在您认为的位置。位置/工作目录在这里很好。它们似乎不是问题。您正在设置当前目录吗?如果没有,您的相对位置可能不在您认为的位置。位置/工作目录在这里很好。它们不是问题这似乎是个问题