Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.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语言模拟批处理文件#_C#_Batch File - Fatal编程技术网

C# 用C语言模拟批处理文件#

C# 用C语言模拟批处理文件#,c#,batch-file,C#,Batch File,我有一个运行这四个命令的批处理文件 vsinstr -coverage hello.exe vsperfcmd /start:coverage /output:run.coverage hello vsperfcmd /shutdown 如何使用C#运行这四个命令?使用运行命令 示例 使用overrideProcess.Start(字符串文件名、字符串参数) 将这些命令添加到批处理文件中,并使用下面的代码运行它 ProcessStartInfo startInfo; System.Diag

我有一个运行这四个命令的批处理文件

vsinstr -coverage hello.exe
vsperfcmd /start:coverage /output:run.coverage
hello
vsperfcmd /shutdown
如何使用C#运行这四个命令?

使用运行命令

示例

使用override
Process.Start(字符串文件名、字符串参数)


将这些命令添加到批处理文件中,并使用下面的代码运行它

 ProcessStartInfo startInfo;
 System.Diagnostics.Process batchExecute;

 startInfo = new ProcessStartInfo("batchFilePath");
 startInfo.CreateNoWindow = true;
 startInfo.WindowStyle = ProcessWindowStyle.Hidden;
 startInfo.UseShellExecute = true;
 startInfo.Verb = "runas";

 batchExecute = new System.Diagnostics.Process();
 batchExecute.StartInfo = startInfo;

 batchExecute.Start();

 batchExecute.WaitForExit();

既然已经有了批处理文件,为什么不从C#运行它,而不是从C#运行其中的命令呢?例如:

Bah!你赢了我!:)用一个例子编辑了你的答案。@Filip:你比我更快地完成了这个例子,我刚想发布一些(我忘了它是什么语言,用VB写的,然后花了一点时间加载在线转换器等)。谢谢。将
Verb
设置为
“runas”
将运行提升的进程,包括任何必要的UAC提示。如果不需要提升,请不要设置此属性(或将其设置为“打开”)。
 ProcessStartInfo startInfo;
 System.Diagnostics.Process batchExecute;

 startInfo = new ProcessStartInfo("batchFilePath");
 startInfo.CreateNoWindow = true;
 startInfo.WindowStyle = ProcessWindowStyle.Hidden;
 startInfo.UseShellExecute = true;
 startInfo.Verb = "runas";

 batchExecute = new System.Diagnostics.Process();
 batchExecute.StartInfo = startInfo;

 batchExecute.Start();

 batchExecute.WaitForExit();