2012-03-12 17 views
1

Windows用のバッチファイルを作成するのは非常に基本的なスキルです。Thunderbirdのprefs.jsファイルに行を変更/追加するためのバッチファイル

私は、ログインスクリプトの一部としてすべての雷鳥のプロフィールprefs.jsからadd this lineにできるようにしたいと思います:

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

、それは他の値ですでにあるmsgcompose.text_color場合、理想的に私はそれに置き換えたいです"black"

私はパズルのピースのいくつかを持っている:ワイルドカードは

  • findstr
  • を展開したとき %APPDATA%\Thunderbird\Profiles\*.defaultがゼロ、一つ以上のプロファイルフォルダである %APPDATA%\Thunderbird\Profiles\*.default\prefs.jsを使用することができます。

    • ファイルはで見つけることができます私はechoコマンドについて知っていると>>

    どのようにDファイル

  • を検索します私はこれらの作品を一緒に置く?


    EDIT:このメソッドの動作

    が、私は私が見ることができる最も簡単な方法は、最初の場合は県を削除することですprefs.js

  • 答えて

    2

    における最優先の設定のより良い方法であるuser.jsを発見したので、それは既にそこにあり、無条件にそれをファイルに貼り付けます。そうすれば、既に存在していれば上書きはしませんが、それは単純なバッチファイルで行うのがはるかに難しくなります。そのような

    何か:

    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をコメントアウトすることをおすすめします。

    +0

    私はそれを段階的にテストしました。そして、それは望みどおりに正確に機能します(エスケープされた括弧btwの良い点)。どうもありがとう! –

    関連する問題