2011-07-31 86 views
5

我有一个批处理文件,可以根据我的输入转到特定文件夹。如何用窗口标题启动powershell?

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" 

在执行结束时,具有标题“位”的命令提示窗口打开,并且在对应于输入的选择指定的目录。这很好。但我想用Powershell做同样的事情。

如果不是start "bits",我把start powershell放在最后一行,我可以打开Powershell控制台。通过这样做,我有两个问题。

  1. Powershell控制台仍在d:\test\bits文件夹中,而不是我打算去的那个文件夹。
  2. 我不能拿到冠军是bits

我如何得到我想要使用PowerShell的功能?

回答

8

从我所期待的,什么我能重现你的脚本,当前目录设置为预期的一个(d:\test\bits\code\pl如果我进入1)

为标题的一部分,你可以做到以下几点:

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

我现在可以设置标题。但是,对我而言,当前目录未设置为预期的目录。在cmd到达调用Powershell的最后一行后,它似乎已经开始新鲜了,并且没有记录原始批处理文件中的命令。我不确定你是如何做到的。 – Animesh

+0

@steeluser - 我尝试了您发布的确切脚本,并将最后一行更改为我发布的powershell。它正在按照预期工作。我不确定你的系统有什么不同。什么操作系统btw? – manojlds

+0

我的错误。我花了一段时间才意识到我的profile.ps1中的提示功能被设置为打开'd:\ test \ bits'。谢谢你的帮助。 – Animesh