6
votes

I have a batch file that allows me to go to particular folder based on my input.

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"

At the end of execution, a command prompt window with the title "bits" opens up and is in the specified directory corresponding to the input choice. This is all good. But I want to have the same thing done with Powershell.

If, instead of start "bits", I put, start powershell, in the last line, I can get Powershell console to open. By doing this, I have two issues.

  1. Powershell console is still in d:\test\bits folder and not in the one I intended it to go.
  2. I cannot get the title to be bits

How do I get the functionality I want with Powershell?

1

1 Answers

13
votes

From what I expected and what I was able to reproduce with your script, the current directory is set to the intended one (d:\test\bits\code\pl if I enter 1)

For the title part, you can do the following:

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