2010-05-25 4 views
8

Ich weiß, mit externen Tools Optionen kann ich ein Batch-Skript oder eine Cmd-Eingabeaufforderung ausführen. Aber hier ist, was ich tun mussinteraktives Fenster zur Ausführung von DOS-Befehlen in Visual Studio

Ich möchte in der Lage, eine DOS-Eingabeaufforderung in Visual Studio, die interaktiv sein muss aufrufen. Auf diese Weise werde ich nicht außerhalb von Visual Studio sein und kann alle meine DOS-Befehle darin ausführen. Ist es möglich? Oder kann ich das Befehlsfenster erweitern und die getippten Befehle erfassen und mit meinem benutzerdefinierten Code verarbeiten?

Dank

Antwort

3

nicht genau das, was Sie fordern, aber ich denke, Ihr Ziel mit StudioShell zu erreichen verwalten könnte:

http://studioshell.codeplex.com/

zugeben, dass ich es nicht so weit genutzt haben aber es sieht sehr interessant aus.

+1

Ich habe es angeschaut und es scheint, dass es nicht möglich ist, DOS-Befehle auszuführen. Was es tut, ist, dass es VS-Automatisierungsfunktionen verfügbar macht, die normalerweise eine Erweiterung, ein Add-In oder ein Paket erfordern würden. Dies ist nützlich für Entwickler von VS-Erweiterungen. Da ich einer von ihnen bin, denke ich, dass es ein ziemlich handliches Werkzeug für mich sein wird. –

+0

Ich denke, es kann ein bisschen mehr als das tun. Sie haben grundsätzlich Power-Shell eingebettet und damit sind Sie ziemlich offen, was Sie tun können. Ein Video zeigt das mercuriale Commandlet ... daher sollte es nicht zu schwierig sein, die DOS-Befehle, die Sie benötigen, für StudioShell verfügbar zu machen. –

14

Es gibt den Tools.Shell Befehl, der für Sie arbeiten kann. Mit der Option/c geben Sie an, dass die Ausgabe für die ausführbare Datei im Befehlsfenster angezeigt wird. Dann rufen Sie cmd.exe mit der Option/C auf, die nach Abschluss des Befehls den Befehl zum Schließen anfordert. Wenn Sie beispielsweise Folgendes eingeben:

Tools.Shell /c cmd.exe /C dir C: 

Dadurch wird die Ausgabe in das Befehlsfenster gedruckt. Im Gegensatz zur Ausgabe funktioniert die Eingabe leider nicht. Also, wenn Sie eingeben:

Tools.Shell /c cmd.exe /C pause 

Die Eingabeaufforderung wird nicht auf Ihre Eingabe warten (Drücken einer Taste).

Wenn das für Sie in Ordnung ist, können Sie für die meisten davon sogar einen Alias ​​definieren. Zum Beispiel können Sie define aliassh für Tools.Shell/c cmd.exe/C:

alias sh Tools.Shell /c cmd.exe /C 

Dann einfach Sie es wie folgt verwenden:

sh dir c: 
5

Wenn Sie NuGet installieren, dann fügt Package Manager Console zu Visual Studio hinzu, das im Wesentlichen eine Powershell-Eingabeaufforderung ist. Es sollte Möglichkeiten geben, die meisten DOS-Sachen über Powershell zu machen und auch mehr Funktionalität zu haben.

+1

Sie können sich auch den Code von NuGet anschauen und sehen, wie Sie dies selbst implementieren können: http://nuget.codeplex.com/SourceControl/list/changesets – ridecar2

Verwandte Themen