2010-05-25 120 views
8

我知道使用External Tools選項,我可以運行批處理腳本或cmd提示符。但這裏是我需要做的交互式窗口在Visual Studio中執行dos命令

我想能夠在visual studio中調用一個dos提示符,它必須是交互式的。這樣我就不會在Visual Studio之外,並且可以在其中運行我所有的dos命令。可能嗎?或者我可以擴展命令窗口並捕獲鍵入的命令並使用我的自定義代碼處理它們?

感謝

回答

3

你所要求的不完全是,但我認爲你可以管理,實現與StudioShell自己的目標:

http://studioshell.codeplex.com/

不得不承認,我沒有使用它爲止但它看起來很有趣。

+1

我看了看,它似乎不能執行DOS命令。它所做的是暴露VS自動化功能,通常需要擴展,加載項或包。所以這對VS擴展開發者很有用。由於我是他們中的一員,我認爲這對我來說將是一個非常方便的工具。 – 2011-03-18 09:15:09

+0

我認爲它可以做得更多。你基本上已經嵌入了power shell,因此你可以做的很開放。一個視頻顯示了mercurial commandlet ...因此,爲StudioShell創建所需的DOS命令應該不會太困難。 – 2011-03-18 10:35:22

14

Tools.Shell命令可能適合你。您使用/ c開關來指定可執行文件的輸出顯示在命令窗口中。然後你用/ C開關調用cmd.exe,指示它在完成命令後關閉它。例如,如果輸入:

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

這將打印輸出到命令窗口。不幸的是,與輸出不同,輸入不起作用。所以,如果你輸入:

Tools.Shell /c cmd.exe /C pause 

提示不會等待你的輸入(按一個鍵)。

如果對你來說沒問題,你甚至可以定義一個大部分的別名。例如,你define aliasSHTools.Shell/C的cmd.exe/C

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

然後你只需使用它,如下所示:

sh dir c: 
5

如果安裝NuGet,那麼它將包管理器控制檯添加到Visual Studio中,這本質上是一個Powershell命令提示符。應該有通過Powershell來完成大部分DOS工作的方法,並且還有更多的功能。

+1

你也可以看看NuGet的代碼,看看如何在這裏自己實現它:http://nuget.codeplex.com/SourceControl/list/changesets – ridecar2 2011-03-23 17:41:14