设置 PowerShell 窗口标题

设置 PowerShell 窗口标题

继续我上一篇文章:

简单说一下 PowerShell
最近做项目的时候,需要起不少环境,每次起的时候去复制粘贴命令肯定是不现实的。以前直接写的 bat 脚本,正好能在实践中学习,于是决定切换到 PowerShell。

我的使用场景是批量启动开发环境,而这涉及到很多 PowerShell 标签页,下图:

再多点标签,谁是谁根本分不清楚了,所以我需要为标签页命名。

正常来说,右键选项卡是可以重命名的,这不“脚本”,这也不“批量”,我肯定是想在脚本文件中直接设置的。

于是乎,我问了 ChatGPT,也去找了网站的教程,给我的都挺统一的,如下:

$Host.UI.RawUI.WindowTitle = "New Title"

直接在 PowerShell 中运行是没有任何问题的,下图:

但是放到 sh1 脚本中,就不对了,得到的是如下的错误提示:

System.Management.Automation.Internal.Host.InternalHost.UI.RawUI.WindowTitle: The term 'System.Management.Automation.Internal.Host.InternalHost.UI.RawUI.WindowTitle' is not recognized as a name of a cmdlet, function, script file, or executable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

当 ChatGPT 和网上的文章都给不了你答案的时候,怎么办呢?当然是看官方文档:https://learn.microsoft.com/zh-cn/powershell/

我首先通过 RawUI 关键词搜索文档,找到了 Get-Host 命令,详细看完文档,我悟了,修改命令如下:

$web_cmd = @"
cd D:\WorkSpace\SO_Web;
(Get-Host).UI.RawUI.WindowTitle = 'SO_Web';
yarn dev
"@

$web_arg= @("-NoExit", "-Command", $web_cmd)

Start-Process pwsh.exe -ArgumentList $web_arg

顺利解决,下图:


以上。