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

PowerShell解析properties文件报Unrecognized escape sequence错误如何处理

问题根因

ConvertFrom-StringData cmdlet的默认解析规则会将反斜杠(\)视为转义字符,properties文件内数据源配置里的\PWDFC1片段中,\P不属于PowerShell支持的合法转义序列,因此抛出解析错误。

修复方案(无需修改properties文件)

在读取properties内容后、传给ConvertFrom-StringData之前,先把所有单反斜杠替换为双反斜杠,即可绕开转义解析问题,修改后的脚本如下:

$EnvProps='C:\Apps\SAA\config\env.properties'
$AppConfig= 'C:\Apps\SAA\config\app.config'
# 先读取文件内容,将所有单反斜杠替换为双反斜杠再做解析
$rawContent = [IO.File]::ReadAllText($EnvProps) -replace '\\', '\\'
$ReadProps = ConvertFrom-StringData $rawContent
foreach($key in $ReadProps.Keys)
{
    $value = $ReadProps[$key]
    (Get-Content $AppConfig -Raw) -replace "@@$key@@", [regex]::Escape($value) | Set-Content $AppConfig
}
补充说明
  • 第一层替换-replace '\\', '\\':第一个参数是正则匹配规则,两个反斜杠表示匹配单个字面量反斜杠,第二个参数表示将匹配到的单个反斜杠替换为双反斜杠,传给ConvertFrom-StringData后会被正确解析为单个反斜杠存入对应value
  • 第二层[regex]::Escape($value):-replace运算符属于正则替换逻辑,用该方法转义value内的所有正则特殊字符,可以避免替换环节出现意料之外的解析错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 18:15:03