Windows PowerShell ISE не promt для ввода

Я использую консоль в качестве инструмента для управления репозиториями mercurial. Wtih classic cmd или Console2 я типа:

hg in

и консоль запрашивает что-то вроде:

D:workspacesomeproject>hg in
http authorization required
realm: Bitbucket.org HTTP
user: xorty
password:

и, очевидно, я набираю пароль.

но когда я набираю "hg in" в консоли powershell, он ничего не запрашивает. Он просто продолжает говорить это.: Running script / selection. Press Ctrl + Break to stop

могу ли я заставить PowerShell ISE вести себя как классическая консоль, или это не так PowerShell предназначен для работы?

2 ответов


PowerShell ISE действительно не поддерживает консольные приложения, требующие интерактивного ввода. Связанная запись в блоге подробно описывает варианты, как с этим бороться.

поскольку PowerShell ISE не является консолью, обычные консольные приложения не могут делать все, к чему они привыкли, в то время как, конечно, командлеты PowerShell могут работать нормально, так как несколько вещей зависят от хост-приложения PowerShell (вы получаете графическое приглашение с Read-Host, для образец.)

Console2 эмулирует обычную консоль, сохраняя фактическую консоль в скрытом окне и повторно опрашивая ее для изменений и, соответственно, отправляя ввод в это окно.


Powershell ISE (интегрированная среда сценариев ) не является стандартной консолью Powershell. ISE, как следует из названия, является довольно простым инструментом написания скриптов на основе GUI и не поддерживает интерактивные консольные приложения ( попробуйте просто cmd на консоли ISE и увидеть сообщение об ошибке)

открыть powershell.exe и выполните команду, которую вы хотите. Он будет вести себя почти как cmd. Или, альтернативно, нажмите CTRL+SHIFT+P в ISE и запустите команду там.