批处理文件以修改/添加行到Thunderbird prefs.js文件



我只有为windows编写批处理文件的基本技能。

我希望能够将这一行添加到每个ThunderBird配置文件的prefs.js中,作为登录脚本的一部分:

user_pref("msgcompose.text_color", "black");

如果msgcompose.text_color已经有了其他值,理想情况下我希望用"black"替换它。

我有一些拼图:

  • 文件可以在以下位置找到:%APPDATA%ThunderbirdProfiles*.defaultprefs.js,其中%APPDATA%ThunderbirdProfiles*.default为零,展开通配符时可以找到一个或多个配置文件文件夹
  • findstr可用于搜索文件
  • 我知道echo命令和>>

我该如何把这些碎片拼在一起?


编辑:

尽管这种方法有效,但我后来发现user.js是覆盖prefs.js 中设置的更好方法

我能看到的最简单的方法是首先删除pref(如果它已经存在),然后无条件地将其附加到文件中。这样,如果它已经存在,就不会进行覆盖,但在普通批处理文件中要做到这一点要困难得多。

类似的东西:

for /d %%x in ("%APPDATA%ThunderbirdProfiles*.default") do (
  findstr /v /c:"msgcompose.text_color" "%%xprefs.js" > "%%xprefs.new.js"
  echo user_pref^("msgcompose.text_color", "black"^);>>"%%xprefs.new.js"
  move /y "%%xprefs.new.js" "%%xprefs.js" >nul
)

findstr /v只打印不包含搜索文本的行。

在测试过程中,我建议您在最后一行注释掉move,直到您确信它确实正确工作为止。

最新更新