Пакетный файл для изменения / добавления строки в файлы Thunderbird prefs.js - PullRequest
1 голос
/ 12 марта 2012

У меня есть только очень базовые навыки написания командных файлов для Windows.

Я бы хотел добавить эту строку к prefs.js для каждого профиля ThunderBird как частьсценарий входа в систему:

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

Если msgcompose.text_color, то оно уже есть с другим значением, в идеале я хочу, чтобы оно было заменено на "black".

У меня есть некоторые части головоломки:

  • файлы можно найти по адресу: %APPDATA%\Thunderbird\Profiles\*.default\prefs.js, где %APPDATA%\Thunderbird\Profiles\*.default - ноль, одна или несколько папок профиля при расширении подстановочного знака
  • findstr можно использовать для поиска файла
  • Я знаю о команде echo и >>

Как мне соединить эти кусочки?


EDIT:

, хотя этот метод работает, с тех пор я обнаружил user.js, который является лучшим методом переопределения настроек в prefs.js

1 Ответ

2 голосов
/ 12 марта 2012

Самый простой способ, который я вижу, это сначала удалить преф, если он уже есть, и безоговорочно добавить его в файл. Таким образом, вы не сделаете перезапись, если она уже есть, но это гораздо сложнее сделать в обычном пакетном файле.

Примерно так:

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 в последней строке, пока вы не убедитесь, что он на самом деле работает правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...