Argus9
Argus9

Reputation: 1945

How to launch Windows Terminal with multiple commands

I've been tinkering around with Windows Terminal lately, and I love how it consolidates all of the various terminal applications into one place. However, compared to the regular WSL Bash program, there's one thing I haven't been able to make it do yet - launch and automatically run a command.

This would be really useful to me because I need to run several services in the background while I develop - Redis, Chromedriver, and Postgresql. I can currently do this by having three separate tasks in Windows Task Scheduler, it would just be nice if I could run them all in a single Terminal window, not three.

I was reading through the documentation for Windows Terminal to see if this was possible, but came up empty. Has anyone been able to come up with a solution to the above?

Thanks!

Upvotes: 5

Views: 4967

Answers (1)

apena
apena

Reputation: 2321

You can run them all in a single tab but you will need to use split panes or tmux. You can use the split panes solution I provided in this Stackoverflow post.

Basically you create a profile for each command you want to run via Powershells -NoExit flag to keep the window(s) open. You can then launch those commands all as split panes in a single tab through Windows Terminal (wt.exe). Then just alias that command or put it in a shortcut to reuse it. Given that you setup all the proper profiles in settings.json the final command would look something like this (run it from cmd):

wt -p "redis" ; split-pane -p "chromedriver" ; split-pane -H -p "postgresql"

Or you could create a profile in settings.json to open your split pane commands from the WT dropdown menu, which would look something like this:

{
  "guid": "{b7041a85-5613-43c0-be35-92d19002404f}"
  "name": "bg_procs",
  "colorScheme": "One Half Dark",
  "commandline": "wt -p \"redis\" ; split-pane -p \"chromedriver\" ; split-pane -H -p \"postgresql\""
},

Upvotes: 2

Related Questions