假设我(或任何正在运行的进程)想要在 Windows (7) 中启动 shell 并发出命令,则有多种可用选项。例如,可以:
- 打开开始菜单,输入
cmd
,然后点击Enter; - 通过快捷方式启动命令提示符;
- 在第三方工具(如 Launchy)中调出命令提示符,或者;
- 在 Windows 中发出一些命令跑步工具 ( Win+ R),启动提示符,发出命令,然后返回
所有上述方法都会(默认)启动cmd.exe
(通常位于Windows\System32
目录中)。
最近我开始喜欢使用其他命令行 shell,比如微软自己的 PowerShell。然而,使用这些工具最让我沮丧的是,默认情况下,我似乎必须特意通过它们启动命令。
有什么办法可以cmd.exe
用另一个 shell替换默认运行行为比如 PowerShell 或 Cygwin?不仅我从开始菜单或启动器发出的命令会在该 shell 中运行,而且如果其他应用程序想要打开 shell,它也会在所述默认 shell 中打开。
要明确的是,如果有某种干净的方法来解决这个问题(即某个地方的注册表设置或配置选项,而不是简单地替换可执行文件),那就太好了。
答案1
.1. 打开开始菜单,输入
cmd
,然后点击Enter;
改为输入powershell
。
.2. 通过快捷方式启动命令提示符;
更改快捷方式的目标。
.3. 在第三方工具(如 Launchy)中调出命令提示符,或者;
我记得,Launchy 只是使用了“开始”菜单中的快捷方式。其他一些工具是硬编码运行的cmd.exe
。
.4. 在 Windows 的运行工具 (Win+R) 中输入一些命令,它将启动提示符,发出命令,然后返回
“跑步”才不是打开 shell,cmd
或者任何其他 shell,除非你通过键入其名称明确要求。它会直接运行给定的程序(据我所知,通过使用ShellExcuteEx()
)。
黑色窗口是Windows 控制台。 它才不是意味着里面有cmd.exe
跑动;它可能有任何控制台程序。(与 Unix 终端完全相同;它们可以运行任何程序,不一定是 shell。)
尽管如此,一些项目可能仍然尊重%COMSPEC%
环境变量。