注释掉的变量给出 PS-Terminal Error (#$Var = error)

Commented out variable gives PS-Terminal Error (#$Var = error)

我在使用最新版本启动的 VSCode 终端时遇到问题。 这可能是一个错误或只是我遗漏的设置,因此我想在将其报告为错误之前先询问您。

Version 1.19.3
Commit 7c4205b5c6e52a53b81c69d2b2dc8a627abaa0ba
Date 2018-01-25T10:36:34.867Z
Shell 1.7.9
Renderer 58.0.3029.110
Node 7.9.0
Architecture x64

我有一个具有不同功能的文件,仅用于 Office365 管理任务。

我总是在 VSCode 和 运行 中打开文件 (F5),然后从另一个文件调用函数。 但是随着最新的 VSCode 升级,当我 运行 文件时,我在终端 window 中得到了这些错误。错误指向我已注释掉的行 (#)。 在每个函数中,我首先在注释行中对我使用的每个变量进行了解释,如下所示:#$UserName = the Name of the user。 如果我在注释字符 # 之后删除 $ 符号,那么该行的错误就会消失。

问题不在于我没有使用正确的基于注释的帮助语法。 事实上,我已经注释掉了我不使用的变量,当我 运行 (F5) VSCode 中的文件时会引发错误。

有谁能解释为什么我的代码中不能有 #$Var

At C:\Users\anno\OneDrive för företag\Powershell\Script\Anslut_till_O365.ps1:44 char:3
+     #$UPN: anvnamn & epostadress
+      ~~~~~
Variable reference is not valid. ':' was not followed by a valid variable name
character. Consider using ${} to delimit the name.

At C:\Users\anno\OneDrive för företag\Powershell\Script\Anslut_till_O365.ps1:45 char:3
+     #$Firstname: Förnamn
+      ~~~~~~~~~~~
Variable reference is not valid. ':' was not followed by a valid variable name
character. Consider using ${} to delimit the name.

At C:\Users\anno\OneDrive för företag\Powershell\Script\Anslut_till_O365.ps1:46 char:3
+     #$Lastname: Efternamn
+      ~~~~~~~~~~
Variable reference is not valid. ':' was not followed by a valid variable name
character. Consider using ${} to delimit the name.

At C:\Users\anno\OneDrive för företag\Powershell\Script\Anslut_till_O365.ps1:47 char:3
+     #$Title: Medlemsnr inkl filialnrâ,¬
+      ~~~~~~~
Variable reference is not valid. ':' was not followed by a valid variable name
character. Consider using ${} to delimit the name.

下面是错误所抱怨的函数中的第一行。

Function CreateNewE1User {
    #$UPN: anvnamn & epostadress
    #$Firstname: Förnamn
    #$Lastname: Efternamn
    #$Title: Medlemsnr inkl filialnrEUR
    #$Displaynamn: Visningsnamn (Kedja Ort (Butiksnamn), Förnamn Efternamn KEDJA
    #$PWD: Tillfälligt lösenord
    #param ($UPN,$Firstname,$Lastname,$Title,$Displaynamn,$PWD,$SMTP)

    Param(
        $UPN,
        $Firstname,
        $Lastname,
        $Title,
        $Displaynamn,
        $PWD='Password01'
    )

    #skapa ny användare
    New-MsolUser -UserPrincipalName $UPN -FirstName $Firstname -LastName $Lastname -Title $Title -DisplayName $Displaynamn -UsageLocation "SE" -PasswordNeverExpires $false
}

您遇到的问题是 PowerShellEditorService。这是 VS Code 中的 PowerShell 扩展使用的引擎,也是 PS 集成终端 运行 所使用的引擎。

我无法复制您遇到的错误。我使用的是最新版本的 VS Code (1.19.3) 和 PS Extension (1.5.1)。如果您更新后仍然遇到问题,您可以将其提交到 GitHub 存储库,以找出它在您的安装中出现的原因。我的猜测是,即使您对其进行了评论,它仍然会解析该行。如果您阻止评论整个部分,它可能会导致引擎跳过尝试解析每一行。

添加我的评论作为答案,因为它确实适用于 OP。

你有没有想过这是环境问题?

这意味着您的系统 changed/gotten 出现了损坏。

我这样说是因为,我已经看到这种情况发生了,而且它发生在我身上。代码在一个系统上运行良好而在另一个系统上运行失败,

我们说话的时候我遇到了这个问题。您是否有其他系统可以尝试。

作为你的问题和我的相关评论的后续。我发现最新的 VSCode 更新更新了默认的键绑定,从而导致与我的自定义用户键绑定发生冲突。一旦我删除了与新的默认键绑定冲突的自定义键绑定,所有事情都会恢复正常。

故事的寓意,请注意 VSCode 更新并认真阅读自述文件。特别是如果您有自定义的习惯。