如何使用 cmd 同时执行多条命令

Posted dotNET跨平台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用 cmd 同时执行多条命令相关的知识,希望对你有一定的参考价值。

在程序使用“普通用户”权限启动后,如果需要执行一些需要“管理员”权限的操作时,可以启动一个新的进程并配置 Verb = "runas" 。比如以下的重启计算机命令:

Process.Start(new ProcessStartInfo

  FileName = "cmd.exe",
  Arguments = $"/C shutdown -r -t 0",
  UseShellExecute = true,
  CreateNoWindow = false,
  WindowStyle = ProcessWindowStyle.Normal,
  Verb = "runas", //配置管理员权限运行
);

执行后,将会弹出一个 UAC 窗口。用户点击“是”之后,计算机就会重新启动。

其中,/C 参数后面跟要执行的命令,代表”执行字符串指定的命令然后终止“。如果要获取更多的信息可以在命令行中输入 help cmd 查看 cmd 命令的帮助文档。

如果需要执行多条命令,一个简单的方式就是将上述代码重复执行多次。不过,该方式有一点小问题:每次执行都需要用户去授权,用户体验较差。

为了仅需一次授权,可以将多行命令合并成一行:使用 & 、 && 或 || 将多条命令隔开。

用 & 隔开,命令1 & 命令2。
用法是前后命令不管是否运行成功都会运行下去,就是运行1命令,运行2命令。

用 && 隔开,命令1 && 命令2。
用法是前面的命令运行成功才运行后面的命令,就是运行1命令没出错、运行成功才运行2命令。

用 || 隔开,命令1 || 命令2。
用法是前面的命令运行不成功才运行后面的命令,就是运行1命令出错、运行不成功才运行2命令。

如果想在执行 ping 执行成功后再执行一个 dir 命令,可以使用以下代码:

Process.Start(new ProcessStartInfo

  FileName = "cmd.exe",
  Arguments = $"/C ping www.coderbusy.com && dir",
  UseShellExecute = true,
  CreateNoWindow = false,
  WindowStyle = ProcessWindowStyle.Normal,
  Verb = "runas", //配置管理员权限运行
);

以上是关于如何使用 cmd 同时执行多条命令的主要内容,如果未能解决你的问题,请参考以下文章

在java里面如何运行多条cmd命令?我是用for来循环,一次运行一条,可是老是不执行。

DOS中如何同时处理多条命令

vb Shell怎么执行多条cmd命令

c# 打开cmd.exe进程并执行多条命令

bat 文件多条命令的执行

dockerfile CMD执行多条命令且需要支持环境变量