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

PowerShell用ConvertFrom-StringData存多行字符串报错,求替代方案

PowerShell翻译文件存储多行字符串的解决方案

你用的嵌套here-string语法不被ConvertFrom-StringData的StringData参数支持,因为该参数要求键值对格式为key=value,value部分不能嵌套here-string标记,所以会触发解析错误。以下是几种可行的替代方案:

方案1:使用行续符(反引号`)实现多行值

在每行末尾添加反引号(注意反引号后面不能有空格或其他字符),让ConvertFrom-StringData将多行视为同一个值:

ConvertFrom-StringData -StringData @'
msg_first = Ok1
msg_two = Ok2`
Nok2
'@

方案2:使用换行转义序列`n

如果不需要在定义时保留换行格式,可以用`n转义序列代替实际换行,把值写在一行里:

ConvertFrom-StringData -StringData @'
msg_first = Ok1
msg_two = Ok2`nNok2
'@

方案3:直接在.psd1翻译文件中使用here-string(推荐用于本地化场景)

如果是用Import-LocalizedData导入翻译文件,直接在.psd1文件中使用PowerShell原生的here-string语法即可,不需要依赖ConvertFrom-StringData的键值对格式:

  1. 创建翻译文件(比如MyStrings.psd1):
@{
    msg_first = "Ok1"
    msg_two = @"
Ok2
Nok2
"@
}
  1. 在脚本中导入并使用:
Import-LocalizedData -BindingVariable MyStrings -BaseDirectory . -FileName MyStrings.psd1
# 调用多行字符串
Write-Output $MyStrings.msg_two

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 01:38:14