^ в Powershell с помощью SendKeys :: SendWait отправка Ctrl Shift - PullRequest
0 голосов
/ 19 января 2020

Я работаю над действительно грязной системой для запуска функциональности формата RedPate 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}")
...