PowerShell 技能连载 - 简单解析设置文件(第二部分)

在前一个技能中我们使用了 ConvertFrom-StringData 来将纯文本键值对转换为哈希表。

以下是一个转换失败的例子:

1
2
3
4
5
6
$settings = @'
Machine=Server12
Path=c:\test
'@

$settings | ConvertFrom-StringData

当您查看结果时,很快能发现失败的原因:

1
2
3
4
Name                           Value
---- -----
Machine Server12
Path c: est

显然,ConvertFrom-StringData 将 “\“ 视为一个转义符,在上述例子中增加了一个制表符 (“\t“),并吃掉了字面量 “t”。

要解决这个问题,请始终将 “\“ 转义为 “\\“。以下是正确的代码:

1
2
3
4
5
6
$settings = @'
Machine=Server12
Path=c:\\test
'@

$settings | ConvertFrom-StringData

现在结果看起来正确了:

1
2
3
4
Name                           Value
---- -----
Machine Server12
Path c:\test

PowerShell 技能连载 - 简单解析设置文件(第二部分)

http://blog.vichamp.com/2017/07/27/easy-parsing-of-setting-files-part-2/

作者

吴波

发布于

2017-07-27

更新于

2022-07-06

许可协议

评论