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
相关产品推荐
相关产品推荐

