У меня есть ps1 script, чтобы получить некоторую информацию из среды кластера vmware.
В некотором месте ps1 script требуется клавиша ВВОД.
Итак, как это сделать?
-Спасибо
У меня есть ps1 script, чтобы получить некоторую информацию из среды кластера vmware.
В некотором месте ps1 script требуется клавиша ВВОД.
Итак, как это сделать?
-Спасибо
Если я правильно понял, вы хотите, чтобы PowerShell отправил нажатие клавиши ВВОД в какое-то интерактивное приложение?
$wshell = New-Object -ComObject wscript.shell;
$wshell.AppActivate('title of the application window')
Sleep 1
$wshell.SendKeys('~')
Если это интерактивное приложение является PowerShell script, просто используйте все, что находится в строке заголовка окна PowerShell, в качестве аргумента AppActivate (по умолчанию путь к powershell.exe). Чтобы избежать двусмысленности, вы можете вернуть script свое собственное окно с помощью команды title 'new window title'
.
Несколько примечаний:
{ENTER}
, хотя они не идентичны - клавиатура ВВОД. Полный список доступен здесь: http://msdn.microsoft.com/en-us/library/office/aa202943%28v=office.10%29.aspx.Sleep 1
является ожидание 1 секунда, потому что для активации окна требуется некоторое время, и если вы немедленно вызовете SendKeys, он отправит ключи в PowerShell окна или в никуда.Иногда метод wscript.shell SendKeys может быть немного причудливым, поэтому, если вы столкнулись с проблемами, замените четвертую строку выше:
Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.SendKeys]::SendWait('~');