интерактивное окно для выполнения команд DOS в Visual Studio

Я знаю, что с помощью параметров внешних инструментов я могу запустить пакетный скрипт или приглашение cmd. Но вот что мне нужно сделать

Я хочу иметь возможность вызывать подсказку DOS внутри Visual Studio, которая должна быть интерактивной. Таким образом, я не буду находиться за пределами визуальной студии и смогу запускать в ней все свои команды dos. Является ли это возможным? Или я могу расширить окно команд и захватить введенные команды и обработать их, используя свой собственный код?

Спасибо


person Anirudh Goel    schedule 25.05.2010    source источник


Ответы (3)


Вам может подойти команда Tools.Shell. Вы используете переключатель /c, чтобы указать, что выходные данные для исполняемого файла отображаются в окне команд. Затем вы вызываете cmd.exe с ключом /C, который указывает ему закрыться после завершения команды. Например, если вы наберете:

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

Это напечатает вывод в командное окно. К сожалению, в отличие от вывода, ввод не работает. Итак, если вы наберете:

Tools.Shell /c cmd.exe /C pause

Подсказка не будет ждать вашего ввода (нажатия клавиши).

Если вас это устраивает, вы можете даже определить псевдоним для большей части этого. Например, вы определяете псевдоним sh для Tools.Shell /c cmd.exe /C:

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

Затем вы просто используете его следующим образом:

sh dir c:
person Peter Macej    schedule 18.03.2011

Если вы устанавливаете NuGet, он добавляет консоль диспетчера пакетов в Visual Studio, которая по сути является командной строкой Powershell. Должны быть способы делать большинство вещей DOS через Powershell, а также куча дополнительных функций.

person Bermo    schedule 22.03.2011
comment
Вы также можете посмотреть код NuGet и посмотреть, как это реализовать самостоятельно, здесь: nuget.codeplex. com/SourceControl/list/changesets - person ridecar2; 23.03.2011

Не совсем то, о чем вы просите, но я думаю, вам удастся достичь своей цели с помощью StudioShell:

http://studioshell.codeplex.com/

Должен признать, что я не использовал его до сих пор, но это выглядит очень интересно.

person Stefan Egli    schedule 17.03.2011
comment
Я посмотрел на него, и кажется, что он не может выполнять команды DOS. Что он делает, так это то, что он предоставляет функциональные возможности автоматизации VS, которые обычно требуют расширения, надстройки или пакета. Так что это полезно для разработчиков расширений VS. Поскольку я один из них, я думаю, что это будет очень удобный инструмент для меня. - person Peter Macej; 18.03.2011
comment
Я думаю, что это может сделать немного больше, чем это. Вы в основном имеете встроенную силовую оболочку, и поэтому вы совершенно открыты, что вы можете сделать. В одном видео показан mercurial commandlet... таким образом, не должно быть слишком сложно сделать необходимые команды DOS доступными для StudioShell. - person Stefan Egli; 18.03.2011