我正在使用以下命令从JSON格式的文件中导入一组配置值:
$configFileContent = Get-Content -Path run.config | ConvertFrom-Json
这产生的结果除其他外,包含以下内容(变量$configFileContent
的内容):
{
"config-values":{
"path":"..\temp-path"
}
}
接下来,我尝试按如下方式从该配置访问path的值:
$conf = $configFileContent.'config-values'
$tempPath = $conf.'path'
..但是失败是由于\t
中的字符..\temp-path
被解释为表示Tab的转义序列。通过打印$conf
的内容可以很清楚地看到,现在是:
path
----
.. emp-path
如您所见,Path
的值按预期是.. <tab> emp-path
而不是..\temp-path
。显然,这稍后会在我尝试使用变量$tempPath
作为实际路径时引起麻烦。
我如何使Powershell能够按预期解释这一点-即在这里将字符串视为文字?
我知道这可能不是您要寻找的答案。但是快速解决方案是在JSON文件中使用双反斜线]
这也是所有其他语言的常见解决方法
{
"config-values":{
"path":"..\\temp-path"
}
}