如何使用参数运行外部命令

本文关键字:外部 命令 运行 参数 何使用 | 更新日期: 2023-09-27 18:13:42

转换

%systemroot%'system32'dism.exe /Online /Add-Package /PackagePath:%systemdrive%'temp'IE-Win7.CAB /quiet /norestart

我试过了,但不起作用。

runProgram("dism.exe", "'"" + workingDir + "/Online /Add-Package ''IE-Win7.CAB'" /quiet /norestart /log:'"" + LogFolder + "''IE-Win7.CAB.evtx'"");

下面只是我正在使用的一个示例程序,它有一行也记录它

runProgram("wusa.exe", "'"" + workingDir + "''Windows6.1-KB2882822-x86.msu'" /quiet /norestart /log:'"" + LogFolder + "''Windows6.1-KB2882822-x86.evtx'"");

背景

该程序基本上调用要安装的.msu文件并记录事件。

如何使用参数运行外部命令

var sys_root = Environment.ExpandEnvironmentVariables("systemroot");
var dism_path = $"{sys_root}'system32'dism.exe";
var sys_drive = Environment.ExpandEnvironmentVariables("systemdrive");
var args = $"/Online /Add-Package /PackagePath:'"{sys_drive}'temp'IE-Win7.CAB'" /quiet /norestart"
var proc = Process.Start(dism_path, args);

这扩展了您在原始调用中使用的环境变量,使用C#插值语法将它们插入到可以传递给Process的两个字符串中。开始(字符串,字符串(,以执行该行。当然,我不想亲自测试。