Sublime Text导致PowerShell脚本失败

时间:2018-04-17 00:31:28

标签: powershell sublimetext3

我一直在使用SublimeText一段时间,直到最近还没有任何问题。如果我在sublime文本中编写PowerShell脚本,脚本将无法运行,如下所示:

Missing closing '}' in statement block or type definition.
At C:\Users\user\OneDrive\Scripts\~Projects\TRIS-AzureMigration\TRIS-AzureMigration.ps1:7 char:25
+ function Get-SQLInstall {

这些错误仅在我从PowerShell调用脚本时显示。如果我将脚本复制到控制台就可以了。如果我在ISE中运行它可行。我也可以运行它,如果我将代码复制到记事本,然后从那里保存为.ps1,这告诉我它与sublime文本有关。

我环顾四周,发现了一些例子:

My script runs in powershell ISE but not powershell console? ::解决方案是复制到一个新文件,我不想每次都这样做。

对此的任何帮助都将非常感激。

上述错误的代码代码块:

function Get-SQLInstall {
    param ( [parameter(Mandatory=$false)]$GetMax = $true)

    $instances = @();
    $inst = (get-itemproperty 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server').InstalledInstances;


    foreach ($i in $inst)
    {
        $p = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL').$i;
        [version]$v = ((Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\$p\Setup").Edition).Major;

        $instances += New-Object –TypeName PSObject -Property @{
            Edition = ((Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\$p\Setup").Edition);
            version = (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\$p\Setup").Version;
            SQLPath = (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\$p\Setup").SqlPath;
            SQLFullPath = ((Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\$p\Setup").SqlPath) + "\" + [string]$v.major + "0";
        }
    }

    if ($GetMax -eq $true) {
        ## Get latest SQL version
        $max = ($instances | measure-object -Property version -maximum).maximum;
        return @($instances | ? { $_.version -eq $max})[0];
    }
    else {
        return $instances;
    }
}

0 个答案:

没有答案