启动新进程时如何在PowerShell中更改UI标题

启动新进程时如何在PowerShell中更改UI标题,powershell,Powershell,我正在尝试在PowerShell中使用Start Processcmdlet在新窗口中运行PS脚本,该窗口的标题标识正在运行的脚本。例如,我想在名为“速度测试”的窗口中运行SpeedTest.ps1脚本。在阅读了许多类似问题的答案后,我认为这将是一项简单的任务。然而,它似乎不起作用。我的PS代码是: $host.UI.RawUI.WindowTitle = "Speed Test" Start-Process powershell -ArgumentList .\SpeedT

我正在尝试在PowerShell中使用
Start Process
cmdlet在新窗口中运行PS脚本,该窗口的标题标识正在运行的脚本。例如,我想在名为“速度测试”的窗口中运行
SpeedTest.ps1
脚本。在阅读了许多类似问题的答案后,我认为这将是一项简单的任务。然而,它似乎不起作用。我的PS代码是:

$host.UI.RawUI.WindowTitle = "Speed Test"
Start-Process powershell -ArgumentList .\SpeedTest.ps1

脚本按预期在新窗口中运行,但该窗口的标题是“Windows PowerShell”,而不是“速度测试”。我验证了
WindowTitle
变量是否设置为“速度测试”,但无法理解为什么窗口标题不会更改。我做错了什么?

通过
-c
/
-command
(这在Windows powershell中是隐含的,而powershell[Core]v6+现在默认为
-File
)来更改传递给
powershell.exe
可执行文件的命令字符串的窗口标题部分:

注意:因为您知道要启动一个新的控制台窗口,所以可以使用更简洁的
[console]::Title=…

请注意,由于PowerShell启动速度不是最快的,因此需要一段时间才能更改窗口标题;以下技术使用
cmd.exe
的内部
start
命令立即更改窗口标题,但请注意,新窗口的颜色将是
cmd.exe
的颜色,而不是PowerShell的颜色:

cmd /s /c 'start "Speed Test" powershell.exe -file .\SpeedTest.ps1'

通过
-c
/
-command
(这在Windows powershell中是隐含的,而powershell[Core]v6+现在默认为
-File
)来更改传递给
powershell.exe可执行文件的命令字符串的窗口标题部分:

注意:因为您知道要启动一个新的控制台窗口,所以可以使用更简洁的
[console]::Title=…

请注意,由于PowerShell启动速度不是最快的,因此需要一段时间才能更改窗口标题;以下技术使用
cmd.exe
的内部
start
命令立即更改窗口标题,但请注意,新窗口的颜色将是
cmd.exe
的颜色,而不是PowerShell的颜色:

cmd /s /c 'start "Speed Test" powershell.exe -file .\SpeedTest.ps1'

根据mklement0的答案,您可以在SpeedTest.ps1脚本中包含[Console]::Title=语句。根据mklement0的答案,您可以在SpeedTest.ps1脚本中包含[Console]::Title=语句。