2012-03-12 2 views
1

Windows 용 일괄 처리 파일을 작성하는 데있어 기본적인 기술 만 보유하고 있습니다.Thunderbird prefs.js 파일을 수정/추가하는 일괄 파일

내가 로그인 스크립트의 일부로서 모든 썬더 버드 프로필에 대한 prefs.jsadd this line 수 있도록하고 싶습니다

: 그것은 다른 값으로 이미있는 msgcompose.text_color 경우

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

가 이상적으로 나는 그것이로 대체합니다 "black".

나는 몇 개의 퍼즐 조각을 가지고 : 와일드 카드가

  • findstr
  • 을 확장 할 때 %APPDATA%\Thunderbird\Profiles\*.default가 0 개, 1 개 이상의 프로필 폴더입니다 %APPDATA%\Thunderbird\Profiles\*.default\prefs.js 사용할 수 있습니다 :

    • 파일에서 찾을 수 있습니다 파일을
    • 나는 echo 명령에 대해 알고
    • >>

    방법 D를 검색 할 수 나는이 조각들을 같이 쓴다?


    편집 :이 방법은 작동

    하지만, 내가 볼 수있는 가장 쉬운 방법은 첫 번째 경우 현을 제거하는 것입니다 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가있는 좋은 지점). 많은 감사합니다! –