Duplicate session in ConEmu

Is there way to "duplicate" session in ConEmu.

I know it's not possible for every kind of terminal (cmd.exe, powershell, etc), but I'm most interested in following situation:

  • I'm in cmd.exe console inside ConEmu.
  • By typing Ctrl-T (the shortcut I specified) I am able to open a new console tab, with a new session (cmd.exe).

I want this session to start in the same directory as the first one, original one. I'm feeling that it can be done with %cd% variable or similar, but I couldn't manage it.


Variant 1

Type in existing cmd prompt

cmd -new_console

and press Enter. Also you may create hotkey/macro for this sequence, for example AppsN -->

print("cmd -new_console\n")

or create cmd-file or doskey alias.


Variant 2

Use menu item Duplicate root.... It will make a copy of your most parent (root) shell of the current tab (where you are calling menu item). Also you may disable duplicate confirmation in the Settings \ Confirmation.


Variant 3

With latest versions (from 140818) you also may use %CD% environment variable within Shell() GuiMacro function. How to set up your shell described here.

Shell("", "cmd", "", "%CD%")

The following will do the same thing for PowerShell

ConEmu64.exe /config "shell" /dir "$(pwd)" /cmd powershell -new_console:n

I created the following function that is loaded in my PowerShell profile

function Create-Console($path = $(pwd)) {
  $console = Resolve-Path (join-path (join-path "$env:PROGRAMW6432*" "console*") "ConEmu64*");
  . $console /config "shell" /dir "$path" /cmd powershell -new_console:n
}

Set-Alias sh Create-Console

Then I can execute the following in the console to create a new PowerShell tab in the same directory:

> sh

or create a tab in a different directory with:

> sh c:\some\directory\path