【发布时间】:2019-10-04 06:31:05
【问题描述】:
我正在使用以下命令从 JSON 格式的文件中导入一组配置值:
$configFileContent = Get-Content -Path run.config | ConvertFrom-Json
这会产生一个结果,其中包含以下内容(变量$configFileContent 的内容):
{
"config-values":{
"path":"..\temp-path"
}
}
接下来,我尝试从该配置中访问 path 的值,如下所示:
$conf = $configFileContent.'config-values'
$tempPath = $conf.'path'
..但这失败了,因为..\temp-path 中的字符\t 被解释为表示Tab 的转义序列。通过打印$conf 的内容可以清楚地看出这一点,现在是:
path
----
.. emp-path
如您所见,Path 的值是.. <tab> emp-path,而不是预期的..\temp-path。显然,当我尝试将变量 $tempPath 用作实际路径时,这会导致麻烦。
如何让 Powershell 将其解释为预期的 - 即,在这里将字符串视为文字?
【问题讨论】:
-
这是执行此操作的 JSON 解析器。 JSON 中的反斜杠需要转义 (
"path":"..\\temp-path")。 Related。本质上,您需要修复输入数据。
标签: json powershell escaping string-literals