Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.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# 运行没有CMD.EXE的批处理命令_C#_Windows_Visual Studio_Batch File_Cmd - Fatal编程技术网

C# 运行没有CMD.EXE的批处理命令

C# 运行没有CMD.EXE的批处理命令,c#,windows,visual-studio,batch-file,cmd,C#,Windows,Visual Studio,Batch File,Cmd,我试图在C#应用程序中运行批处理命令。 通常,我会通过以下代码执行此操作: string command = "shutdown -s -t 120"; Process process = new Process(); ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.WindowStyle = ProcessWindowStyle.Hidden; startInfo.FileName = "cmd.ex

我试图在C#应用程序中运行批处理命令。 通常,我会通过以下代码执行此操作:

string command = "shutdown -s -t 120";
Process process = new Process();    
ProcessStartInfo startInfo = new ProcessStartInfo(); 
startInfo.WindowStyle = ProcessWindowStyle.Hidden;   
startInfo.FileName = "cmd.exe"; 
startInfo.Arguments = ("/c" + command); 
process.StartInfo = startInfo;   
process.Start();

然而,我正在为不允许CMD.EXE的网络构建上述应用程序。我可以通过制作一个带有“Command.COM”字符串的*.bat文件来访问命令提示符,然后我必须手动输入命令。上面的代码不允许我将字符串命令传递给批处理文件,只能传递给*.exe文件。有什么办法可以解决这个问题吗?

答案是完全绕过
cmd
,这里不需要它,
shutdown
本身就是一个进程,所以直接运行它即可:

Process.Start("shutdown","/s /t 120");

Shutdown
不是批处理命令,而是系统可执行文件。您可以调用它而不是
cmd

C:\Windows>dir/s shutdown.exe
驱动器C中的卷没有标签。
卷序列号为008A-AC5B
C:\Windows\System32的目录
30-10-2015 08:17 37.376 shutdown.exe
1个文件37.376字节
C:\Windows\SysWOW64的目录
30-10-2015 08:18 33.792 shutdown.exe
1个文件33.792字节
因此,您可以将当前代码替换为:

Process process = new Process();    
ProcessStartInfo startInfo = new ProcessStartInfo(); 
startInfo.WindowStyle = ProcessWindowStyle.Hidden;   
startInfo.FileName = "shutdown.exe"; 
startInfo.Arguments = ("-s -t 120"); 
process.StartInfo = startInfo;   
process.Start();
htis直接运行关机怎么样