我只有为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
,直到您确信它确实正确工作为止。