如何启动带自定义标题的PowerShell并在其中执行指定命令?
解决PowerShell窗口标题设置与命令执行的问题
你的问题出在CMD的命令分隔符&上——在CMD环境下,&会让系统先启动新的PowerShell窗口,然后立刻在原来的CMD窗口执行后面的java命令,完全没把java命令传递给新的PowerShell进程。
要让命令在带自定义标题的PowerShell窗口内执行,你需要把「设置标题」和「运行java命令」这两个操作都打包成PowerShell要执行的命令,传递给-command参数,具体修改如下:
start powershell -command "$Host.UI.RawUI.WindowTitle = 'WebWolf'; java -jar .\webwolf-8.0.0.M25.jar --server.port=8090"
关键修改点说明:
- 去掉CMD的
&分隔符:不再让CMD拆分命令,而是把所有要执行的逻辑都交给新的PowerShell窗口处理。 - 用分号
;连接PowerShell命令:PowerShell里用分号分隔多条命令,这样它会先设置窗口标题,再执行java程序。 - 完整包裹命令字符串:用双引号把整个PowerShell命令包起来,确保CMD能把它完整传递给PowerShell的
-command参数,不会被拆分。
额外优化:保留窗口查看输出
如果希望java程序执行完毕后,PowerShell窗口不自动关闭(方便查看日志或报错),可以加上-NoExit参数:
start powershell -NoExit -command "$Host.UI.RawUI.WindowTitle = 'WebWolf'; java -jar .\webwolf-8.0.0.M25.jar --server.port=8090"
内容的提问来源于stack exchange,提问作者Maxi




