You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell脚本报错‘赋值表达式无效’问题求助

问题分析与解决

你的报错和TimezoneId是否为系统级变量无关,核心问题是代码里的语法错误:

在"Tag"=$Meterpointno,这一行的末尾多了一个英文逗号,这个逗号会让PowerShell错误地将下一行的"TimezoneId"="W. Europe Standard Time"解析为当前赋值操作的延续,而非哈希表的独立键值对,进而触发赋值表达式无效的报错。

修正后的代码片段

$Body = [ordered]@{
    "SeriesName" = $SeriesName
    "TerminalIndex"=1
    "QuantityTypesId"=3
    "PeriodType"=4
    "Active"="true"
    "DaylightSaving"="false"
    "Tag"=$Meterpointno  # 移除了末尾的多余逗号
    "TimezoneId"="W. Europe Standard Time"
    "UniqueTimeZone"="false"
    "ValidPeriods"= [ordered]@{
        "GroupName"="SE.EL"
        "Source"="EBIX"
        "ValidPeriodList"= @(
            [ordered]@{
                "PeriodStart"=$ValidFrom
                "PeriodEnd"=$ValidTo
            }
        )
    }
}

额外验证(可选)

如果仍怀疑TimezoneId是系统变量,可以在PowerShell中执行以下命令确认:

Get-Variable -Name TimezoneId -ErrorAction SilentlyContinue

若返回空结果,说明该变量不存在,完全不影响你的哈希表定义。

内容的提问来源于stack exchange,提问作者Raderarn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 09:07:05