Schon seit Längerem arbeite ich bei der Entwicklung mit diversen PowerShell-Scripten. Dazu hatte ich mir in Visual Studio ein "External Tool" eingerichtet, das die PowerShell im aktuellen Solution-Verzeichnis öffnet. Nun bin ich testweise vom "normalen" PowerShell-Host auf cmder umgestiegen, der u.A. die Möglichkeit bietet, mehrere Tabs im selben Fenster bzw. sogar nebeneinander anzuzeigen. Die Aufrufsyntax um aus Visual Studio heraus einen neuen PowerShell-Tab in cmder zu öffnen ist allerdings etwas komplizierter als beim klassischen PowerShell-Host.

Zunächst muss ein neues External Tool angelegt werden (TOOLS > External Tools… > Add). Dann müssen die folgenden Angaben gemacht werden:

Command: [CMDER-VERZEICHNIS]\vendor\conemu-maximus5\ConEmu.exe
Arguments: /single /cmd powershell -ExecutionPolicy RemoteSigned -NoExit -Command "cd ""$(SolutionDir)"""

Command

Hier gilt es zunächst zu beachten, dass [CMDER-VERZEICHNIS] durch das Verzeichnis ersetzt werden muss, in das cmder installiert ist (das Verzeichnis, in dem sich die cmder.exe befindet). Hier kann dann allerdings nicht direkt die cmder.exe angegeben werden. Statt dessen muss die CodeEmu.exe in einem der Unterverzeichnisse gestartet werden (Hinweis: cmder ist eigentlich "nur" ein Aufsatz auf ConEmu).

Arguments

Über die Argumente wird cmder (bzw. ConEmu) angewiesen, einen neuen Tab zu erzeugen, darin die PowerShell zu starten und in das Verzeichnis der aktuellen Solution zu wechseln. In der folgenden Tabelle sind die einzelnen Argumente nochmals kurz erläutert:

Argument Bedeutung
/single Falls bereits eine Instanz voin cmder/ConEmu läuft, soll keine zusätzliche Instanz gestartet werden. Statt dessen soll ein neuer Tab in der bestehenden Instanz geöffnet werden.
/cmd Das Kommando, das beim Öffnen des neuen Tabs ausgeführt werden soll. In diesem Fall: powershell.exe mit den folgenden Argumenten starten: -ExecutionPolicy RemoteSigned -NoExit -Command "cd ""$(SolutionDir)""". Damit wird die PowerShell im neuen Tab so gestartet, dass das Ausführen von Scripten zulässig ist, sie ins Verzeichnis der aktellen Solution wechselt und dann geöffnet bleibt, um weitere Befehle entgegenzunehmen.

Dies ist ausreichend, um das Ziel zu erreichen. Wer sich für weitere Argumente für cmder/ConEmu interessiert, findet hier eine Auflistung.

Das Fenster zum Einrichten des External Tools.

Das Fenster zum Einrichten des External Tools.

Nun kann die PowerShell einfach über das TOOLS-Menü geöffnet werden (noch schneller geht es, wenn man ein Keyboard-Shortcut für das Starten des External Tools einrichtet).

PowerShell als External Tool in cmder öffnen

PowerShell als External Tool in cmder öffnen