【问题标题】:PowerShell Parsing error?PowerShell解析错误?
【发布时间】:2015-11-29 09:03:37
【问题描述】:

我是 PowerShell 新手,遇到了 powershell 解析错误。我的脚本如下:

$ServerName=".\SQL"

$ScriptLoc=$pwd

回显 $pwd

$DrScript=$(scriptLoc)\main_file.sql

回声 $DrScript

执行我得到的脚本后:

表达式或语句中出现意外标记“\main_file.sql”。在 D:\Powershell-MyScripts\powerfile.ps1:8 char:45 + $DrScript=$(scriptLoc)\main_file.sql

请帮助我克服它。

PS:我正在将批处理脚本转换为 Powershell 脚本,所以我遇到了这样的错误。请告知是否有好的教程可以帮助我克服这个问题。

【问题讨论】:

    标签: powershell


    【解决方案1】:

    您在 $DrScript=$(scriptLoc)\main_file.sql 中构建的字符串不正确。要构造该字符串,请将变量和常量用双引号括起来;变量会自动展开。

    $DrScript="$scriptLoc\main_file.sql"
    

    只有当它是一个需要在带引号的字符串中直接访问其属性的对象时,才需要将变量包装在括号中。例如:

    $DrScript="$($scriptLoc.propertyname)\main_file.sql"
    

    但这里不需要。

    此外,PowerShell 样式注释:echoWrite-Output 的别名。别名应为命令行保留;在编写可重用脚本时,请使用完整的 cmdlet 名称。别名可以在另一个用户的环境中重新定义(或完全删除),因此创建对您未在脚本中定义的依赖项的依赖可能会导致失败。

    【讨论】:

      【解决方案2】:

      您的路径周围缺少引号。还需要确保您的变量 $scriptLoc 以美元符号开头并正确命名。

      $DrScript="$($scriptLoc)\main_file.sql" 
      

      【讨论】:

        猜你喜欢
        • 2017-01-18
        • 2023-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-11
        • 1970-01-01
        • 2017-10-11
        相关资源
        最近更新 更多