我有一个以 Invoke-Item 命令结束的自动化 Powershell 进程,为测试人员打开多个 SQL 文件(目前是 4 个 SQL 文件),以便他们运行脚本。请记住,我没有执行他们的脚本,我只是在我的流程结束后打开它们。测试人员当然可以自己打开脚本,但我希望能够为他们安排好一切。
问题是,SQL 脚本总是在多个 SSMS 实例中打开,通常第一个打开 3 个文件,第二个打开 1 个文件,但偶尔打开 2 个和 2 个。(当我将 SQL 文件的数量扩展到 10 个时,我得到四个实例,其中 3 个, 3, 2 & 2 个文件。)
我有不同 SQL 版本的服务器,因此可执行文件的路径可能因系统而异。因此,直接使用附加的文件名调用 EXE 不是一种选择,除非我预先添加逻辑以找到 EXE 的正确路径。
注意:这些是不同的 SQL 版本(2008R2 到 2017),SSMS 版本将是安装附带的版本,而不是新的独立 SSMS
如何让所有 SQL 文件在 Powershell 的单个 SSMS 实例下打开?
$sql = (Get-ChildItem -Path C:\Temp\Export | Where-Object {$_.Name -like "*.sql"}).FullName
II $sql
我希望避免它,但我能够通过确定最新 SSMS.exe 的路径,然后使用 Call 运算符而不是 Invoke-Item 来解决这个问题。
以这种方式对目录进行排序可确保我打开最新的 SSMS 客户端,但更重要的是,它每次都会打开同一个 SSMS 实例中的所有 SQL 文件。