我对PowerShell完全陌生,所以请多多包涵。我在尝试替换首选项文件中的某些字符串时遇到问题,但是该文件包含一堆特殊字符。我将如何用此[[{“ id”:“另存为PDF”'替换此'[{“ id”:“ *”'。另外,第一个参数中的*是正则表达式。
代码如下:
$filepath='C:\Users\%USERNAME%\AppData\Local\Google\Chrome\User Data\Profile 8\'
cd $filepath
(Get-Content Preferences) -replace '[{\"id\":\"*"', '[{\"id\":\"Save as PDF\"' | Out-File -encoding ASCII Preferences
答案 0 :(得分:0)
如果要匹配0-n个字符,请使用.*
而不是*
。另外,您必须转义[
和{
,因为它们是正则表达式中的特殊字符。
这是最终的正则表达式:
-replace '\[\{"id":".*"', '[{"id":"Save as PDF"
答案 1 :(得分:0)
使用convertfrom-json的简单示例:
cat file.json
{
"id": "Save as PDF"
}
$a = get-content file.json | convertfrom-json
$a
id
--
Save as JPG
$a.id = 'Save as PDF'
$a | convertto-json
{
"id": "Save as PDF"
}
$a | convertto-json | set-content file.json
cat file.json
{
"id": "Save as PDF"
}