如何从Powershell中打开Powershell控制台窗口

95

我正在编写一个脚本,使用多个plink(PuTTY)会话作为Windows版本的clusterssh。 但是,我卡在了这里,因为我想从powershell打开多个powershell窗口。 当我键入powershell命令时,它会打开一个新会话。 这类似于在bash中键入bash。 我希望能够打开多个物理窗口。

我尝试了-windowstyle以及其他参数,但都无济于事。 我想知道是否有您知道的方法。 我非常感谢您的帮助。 我查找了一下,没有找到任何已经存在的东西。 感谢您的时间。

6个回答

203

这将会打开一个新窗口。

要么:

start-process powershell

或者:

start powershell

41
更简单的方法是“开始 PowerShell”。 - Brian J
9
这两个命令都会保留旧终端的当前工作目录!知道这点很好! - A. Nilsson
2
可以直接通过“-WorkingDirectory”设置起始目录。 - Dirk
2
saps powershell 打起来更短 - hyperupcall
1
有个奇怪的事情 - 我很久以前就改变了Powershell的背景颜色(早在今天打开第一个Powershell窗口之前!)。当我用这个命令打开一个新窗口时,它却有原始的默认颜色。 - AJM
1
对于 PowerShell Core:Start-Process pwsh - Jari Turkia

35

如果您正在尝试打开一个新窗口并启动一个新脚本:

start powershell {.\scriptInNewPSWindow.ps1}

当您需要启动一系列进程(即npm)时,它非常有效。可能有更好的方法,但作为一个需要快速工作的开发人员,这很棒! - Kyle Barnes

26
这将完成它:
Invoke-Item C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

1
这将新进程的CWD设置为C:\WINDOWS\system32,至少在我的机器上是这样。 - A. Nilsson
6
如果有人阅读此内容,请查看底部得票更多的答案(此处链接)。 - Blundering Philosopher

4

要从PS控制台启动Powershell 6,start pwsh可能会解决问题。
它在相同的文件夹中启动。

(我没有深入研究,但我想PS6的pwsh.exe必须在路径中才能正常工作。)


4
这对我很有效: $argList = "-file `"$Location\script.ps1`"" Start-Process powershell -argumentlist $argList
(反引号是必要的。这可以直接复制。)变量可以在“-file”参数中使用(例如,在脚本开头设置的一个变量,以反映文件的位置),并且由于反引号,变量中可以出现空格。
编辑为使用两行解决方案(“$argList”变量),因为否则PowerShell可能会损坏一些东西。

0
如果你更喜欢使用Windows Terminal而不是原生的PowerShell终端,你可以使用这个替代方案:
start-process wt

如果您需要以管理员权限运行,请使用以下命令:
start-process wt -verb runas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接