用于修改/添加Thunderbird prefs.js文件行的批处理文件

时间:2012-03-12 13:54:25

标签: windows batch-file

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

我希望能够在每个ThunderBird个人资料中add this lineprefs.js作为登录脚本的一部分:

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

如果msgcompose.text_color已存在其他值,那么理想情况下我希望将其替换为"black"

我有一些难题:

  • 可以在以下位置找到文件:%APPDATA%\Thunderbird\Profiles\*.default\prefs.js %APPDATA%\Thunderbird\Profiles\*.default为零,扩展通配符时有一个或多个配置文件夹
  • findstr可用于搜索文件
  • 我了解echo命令和>>

如何将这些碎片放在一起?

<小时/> 编辑:

虽然此方法有效,但我发现user.js这是覆盖prefs.js

中设置的更好方法

1 个答案:

答案 0 :(得分:2)

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

类似的东西:

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

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

在测试期间,我建议在最后一行注释掉move,直到您确定它确实可以正常工作。