如何使用窗口标题启动powershell?

ercv8c1e  于 2023-02-19  发布在  Shell
关注(0)|答案(2)|浏览(137)

我有一个批处理文件,允许我去特定的文件夹根据我的输入。

d:
cd d:\test\bits
@ECHO off
cls
:start
ECHO.
ECHO 1. Perl
ECHO 2. Python
set choice=
set /p choice=type in number to go to appropriate code folder:
if not '%choice%'=='' set choice=%choice:~0,1%
if '%choice%'=='1' goto pl
if '%choice%'=='2' goto py
ECHO "%choice%" is not valid, try again
ECHO.
goto start
:pl
cd code\pl
goto end
:py
cd code\py
goto end
:end
start "bits"

在执行结束时,会打开一个标题为“bits”的命令提示符窗口,该窗口位于与输入选项相对应的指定目录中。这一切都很好。但我希望在Powershell中也做同样的事情。
如果我在最后一行中输入start powershell而不是start "bits",那么我可以打开Powershell控制台。

  1. Powershell控制台仍然在d:\test\bits文件夹中,而不是在我打算让它去的那个文件夹中。
    1.我无法将标题设置为bits
    如何使用Powershell获得我想要的功能?
nbewdwxp

nbewdwxp1#

根据我的预期以及我能够使用脚本重现的结果,当前目录被设置为预期的目录(如果输入1,则为d:\test\bits\code\pl
对于标题部件,可以执行以下操作:

start powershell -NoExit -command "$Host.UI.RawUI.WindowTitle = 'bits'"
gcuhipw9

gcuhipw92#

如果你把这个添加到powershell profile.ps1中,你可以得到窗口标题来显示当前运行的脚本,如果你只是打开一个没有脚本的窗口,那么会显示“pwsh”。
将是系统性的,不需要在每个脚本的顶部添加一行。当从上下文菜单运行脚本时,与$MyInvocation.MyCommand组合的其他答案似乎给予了profile.ps1的名称。
这也可以通过调整来改变结果。

[console]::title = Split-Path -Leaf ([Environment]::GetCommandLineArgs()[-1]).Replace('pwsh.dll','pwsh')

可在PS 5和7上运行。对于版本5,请将pwsh.dll替换为powershell.exe

相关问题