使用 cmd.exe /c 相对于根本不使用 cmd 的优势
Advantages of using cmd.exe /c over not using cmd at all
如果我是 运行 C# 中的进程。直接使用 cmd /c 比 运行 该过程有什么好处吗?
例如:
ProcessStartInfo info = new ProcessStartInfo("cmd.exe");
info.Arguments = "/c application.exe";
Process.Start(info);
相对于
ProcessStartInfo info = new ProcessStartInfo("application.exe");
Process.Start(info);
如果你使用cmd /c
,你可以用&&
分隔命令一次执行多个命令。例如:cmd /c "application1.exe&&application2.exe"
。否则如果只有一个进程要执行,和直接执行进程没有区别。
编辑:显然 cmd /c
也可以 return 一个错误,例如,如果进程不存在。
使用 CMD.EXE
的另一个好处是如果您想执行 built-in 命令。 CMD.EXE
中的许多命令不是单独的可执行文件,而是完全在 CMD.EXE
中实现的,例如 dir
、copy
、mkdir
、cd
等向前。 MKLINK
是一个内置命令,我见过它会绊倒人。
我不知道有什么简单的内置方法可以获取内置命令列表。但是您可以使用 HELP
(这不是内置的!)获取 CMD.EXE
命令的列表,并将每个命令传递给 WHERE
。如果 WHERE
没有找到,那么该命令必须是内置的。
此外,如果你想执行 BAT/CMD 个文件,CMD.EXE 是正确的选择。
cmd /c
和cmd /k
的区别:
这就像说 cmd /?
:
- 使用
cmd /c
然后执行命令系列 - 内核结束。
- 使用
cmd /k
然后执行命令系列 - 内核已打开。
如果你需要内核关闭,你必须使用cmd /c
。
否则只有 cmd /k
.
别忘了离开D.O.S。 IOOS用命令:退出,退出,退出,直到windows关闭。
如果我是 运行 C# 中的进程。直接使用 cmd /c 比 运行 该过程有什么好处吗?
例如:
ProcessStartInfo info = new ProcessStartInfo("cmd.exe");
info.Arguments = "/c application.exe";
Process.Start(info);
相对于
ProcessStartInfo info = new ProcessStartInfo("application.exe");
Process.Start(info);
如果你使用cmd /c
,你可以用&&
分隔命令一次执行多个命令。例如:cmd /c "application1.exe&&application2.exe"
。否则如果只有一个进程要执行,和直接执行进程没有区别。
编辑:显然 cmd /c
也可以 return 一个错误,例如,如果进程不存在。
使用 CMD.EXE
的另一个好处是如果您想执行 built-in 命令。 CMD.EXE
中的许多命令不是单独的可执行文件,而是完全在 CMD.EXE
中实现的,例如 dir
、copy
、mkdir
、cd
等向前。 MKLINK
是一个内置命令,我见过它会绊倒人。
我不知道有什么简单的内置方法可以获取内置命令列表。但是您可以使用 HELP
(这不是内置的!)获取 CMD.EXE
命令的列表,并将每个命令传递给 WHERE
。如果 WHERE
没有找到,那么该命令必须是内置的。
此外,如果你想执行 BAT/CMD 个文件,CMD.EXE 是正确的选择。
cmd /c
和cmd /k
的区别:
这就像说 cmd /?
:
- 使用
cmd /c
然后执行命令系列 - 内核结束。 - 使用
cmd /k
然后执行命令系列 - 内核已打开。 如果你需要内核关闭,你必须使用cmd /c
。 否则只有cmd /k
.
别忘了离开D.O.S。 IOOS用命令:退出,退出,退出,直到windows关闭。