^ в Powershell с использованием SendKeys::SendWait, отправив Ctrl Shift

Я работаю над очень громоздкой системой для запуска функций формата RedGate SQLPrompt для множества файлов, потому что у них нет опции CLI. Я пишу сценарий PowerShell, который примет каталог, затем перебираю файлы в каталоге, открываю SSMS, выполняю набор нажатий клавиш и затем сохраняю файл. Однако, когда я отправляю нажатия клавиш для Ctrl, он отправляет Ctrl + Shift. Мне интересно, есть ли способ остановить это? Приведенный ниже код просто тестирует один файл. Я просто делал пробную версию для себя. Если у вас есть предложения по лучшему способу форматирования SQL, я был бы рад их услышать.

$FilePath = &(" C:\Users\andrew.vahey\Documents\TestSQLFile.sql")

Add-Type -AssemblyName System.Windows.Forms

ssms.exe  $FilePath -E -S PC-ANDREWVAHEY -d Tworks_develop

#Wait 5 seconds
start-sleep -Milliseconds 5000

#The ^ is supposed to send as a Ctrl keystroke. Ctrl K + Ctrl Y will kick off sql prompt format. 
[System.Windows.Forms.SendKeys]::SendWait("^{K}^{Y}")

#Wait 5 seconds for the sql prompt to do it's thing. 
start-sleep -Milliseconds 5000

#Expand Wild Cards
[System.Windows.Forms.SendKeys]::SendWait("^{B}^{W}")

0 ответов

Другие вопросы по тегам