Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.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运行CMD.exe时,系统找不到指定的文件#_C#_Cmd - Fatal编程技术网

C# 从C运行CMD.exe时,系统找不到指定的文件#

C# 从C运行CMD.exe时,系统找不到指定的文件#,c#,cmd,C#,Cmd,我从C#控制台程序运行以下代码时收到错误消息 “系统找不到该文件 指定的“ 代码如下: System.Diagnostics.Process.Start(“C:\Windows\System32\cmd.exe /(c); 奇怪的是,当我省略/c开关时,命令可以运行 知道我做错了什么吗 您需要在路径之前添加@。如下所示:@“C:\Windows\System32\cmd.exe/C”有过多的start to take参数。用那个代替 System.Diagnostics.Process.Star

我从C#控制台程序运行以下代码时收到错误消息

“系统找不到该文件 指定的“

代码如下:

System.Diagnostics.Process.Start(“C:\Windows\System32\cmd.exe /(c);

奇怪的是,当我省略/c开关时,命令可以运行


知道我做错了什么吗

您需要在路径之前添加@。如下所示:@“C:\Windows\System32\cmd.exe/C”

有过多的start to take参数。用那个代替

System.Diagnostics.Process.Start(@"C:\Windows\System32\cmd.exe",  "/c");

我认为问题在于您试图将参数(/c)作为路径的一部分进行传递

参数和文件名是Process类中两个不同的项

试一试


首先,您正在硬编码一条路径,这条路径已经注定会在某人的系统上中断(并非所有Windows安装都在
C:\Windows

但这里的问题是,这些反斜杠被用作转义字符。有两种方法可以编写这样的路径字符串-或者转义反斜杠:

Process.Start("C:\\Windows\\System32\\cmd.exe", "/c");
或者使用
@
禁用反斜杠转义:

Process.Start(@"C:\Windows\System32\cmd.exe", "/c");

您还需要将
/c
作为参数传递,而不是作为路径的一部分传递-使用
进程的第二个重载。如上所示启动

进程。启动
将文件名作为参数。将参数作为第二个参数传递:

System.Diagnostics.Process.Start(@"C:\Windows\System32\cmd.exe", "/c");

我发现您发布的代码存在三个问题:

1) 您没有正确转义路径字符串
2) 您需要将/c参数分别传递给要执行的路径
3) 您假设运行此代码的每台计算机都安装了c:\windows

我建议写如下:

string cmdPath = System.IO.Path.Combine(Environment.SystemDirectory,"cmd.exe");
System.Diagnostics.Process.Start(cmdPath, "/c"); 

最简单的方法是使用addexistingitem和type将程序添加到解决方案中

System::Diagnostics::Process::Start("ccsetup305.exe");

似乎没有回答所问的问题。OP与命令行参数有关,您根本没有演示。我也有同样的问题,但来自命令行:U:\>cmd.exe Microsoft Windows[Version 6.1.7601]版权所有(c)2009 Microsoft Corporation。版权所有。系统找不到指定的路径。
System::Diagnostics::Process::Start("ccsetup305.exe");