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 и запустите команду там.