作为 Windows 登录脚本的一部分(因此需要 VBScript),我想在用户的 Google Chrome 首选项(存储在用户配置文件中的 JSON 文件中)中设置值,以便在他们登录时应用下载设置。
我正在努力实现以下目标:
- 打开一个 JSON 文件 (
%userprofile%\Local Settings\Application Data\Google\Chrome\User Data\Default\Preferences
) 并将内容读入一个字符串; - 搜索名为“download”的特定节点,该节点预先填充了多行值,这些值可能在构建之间有所不同;
- 用指定的多行文本替换大括号之间的整个文本;和
- 将更新后的字符串写入原始文件并保存。
完整的 JSON 文件相当大,但作为输入的示例,它是从典型的 Google Chrome 首选项 JSON 文件中复制而来的:
"bookmark_bar": {
"show_on_all_tabs": false
},
"download": {
"directory_upgrade": true,
"prompt_for_download": false
},
"sync": {
"suppress_start": true
},
我想以编程方式搜索“下载”节点,并替换该节点大括号之间的所有内容,使其显示为:
"download": {
"default_directory": "C:\\Windows\\Temp",
"extensions_to_open": "pdf",
"prompt_for_download": false
},
...文件的其余内容保持不变。
鉴于要替换的 JSON 部分中的空格和多行,以及在大括号之间包含所有/任何文本的通配符要求,我无法使用 VBScript Replace 函数执行此操作,但我的 RegEx 知识有限.