2013-07-25 72 views
0

我正在做的是創建一個批處理文件來替換用戶應用程序數據文件夾中的cert8.db文件以及將一行文本插入其中一個首選項.js文件。通常情況下,這很容易,問題在於我的一些用戶有很多機會擁有多個Firefox配置文件,所以我想要一個腳本來替換firefox/profiles文件夾中的所有cert8.db文件,並插入1行接下來放入firefox/profiles文件夾中的所有prefs.js文件。批處理腳本刪除和替換多個位置中的文件

可以這樣做嗎?如果可能,我願意使用vb。

+0

任務1是找到Firefox的配置文件存儲位置。那麼找到cert8.db文件並更換很容易,如果它們未被鎖定。 prefs.js - 你是否只想將文本添加到文件的末尾,而不管它們是什麼? – foxidrive

回答

2

你可以做這樣的事情:

Set fso = CreateObject("Scripting.FileSystemObject") 

profilesFolder = "C:\Users" 
firefoxProfiles = "AppData\Roaming\Mozilla\Firefox\Profiles" 

For Each fldr In fso.GetFolder(profilesFolder) 
    profilePath = fso.BuildPath(fldr.Path, firefoxAppdata) 
    If fso.FolderExists(profilePath) Then 
    For Each profile In fso.GetFolder(profilePath) 
     certdb = fso.BuildPath(profile, "cert8.db") 
     prefs = fso.BuildPath(profile, "prefs.js") 

     If fso.FileExists(certdb) Then 
     'replace cert8.db 
     End If 

     If fso.FileExists(prefs) Then 
     'modify prefs.js 
     End If 
    Next 
    End If 
Next 

更換DB文件,並修改喜好的代碼依賴於在替換DB的來源和你想的喜好添加或更新什麼。

+0

我插入了新的代碼:在firefox配置文件下'newcertfile =「C:\ firefox \ cert8.db」''如果fso.FileExists(certdb)然後objFSO.CopyFile「cert8.db」,「cert8.old」objFSO.CopyFile newcertfile,OverwriteExisting' – user2214162

+0

除非將工作目錄設置爲配置文件夾,否則需要使用'CopyFile'中的完整路徑。另外我會使用'MoveFile'來重命名舊的'cert8.db',所以你不需要在第二步強制覆蓋現有的文件。另外,你的第二個'CopyFile'只有源路徑。您還需要目標路徑。 –

+0

我做了調整,但它出了這個錯誤:對於每個fldr在fso.GetFolder(profilesFolder),我調整profilesFolder到'profilesFolder =「C:\ users \%USERNAME%」但它說路徑不存在 – user2214162

0
FOR /D %%i IN (C:\Users\*.*) Do FOR /D %%j IN (%%i\AppData\Roaming\Mozilla\Firefox\Profiles\*.*) Do (
    CALL :ReplaceDB "%%j\cert8.db" 
    CALL :ChangeJS "%%j\prefs.js" 
) 

:ReplaceDB 
IF NOT EXIST %1 GOTO :EOF 
MOVE /Y %1 "%~1.old" 
COPY C:\firefox\cert8.db %1 
GOTO :EOF 

:ChangeJS 
IF NOT EXIST %1 GOTO :EOF 
ECHO user_pref("network.proxy.autoconfig_url", "pac.pe.lan/pac/proxy.pac") >> %1 
GOTO :EOF 

編輯:添加第二FOR搜索配置文件。 編輯:添加代碼替換數據庫和追加行到JS。

+0

這兩個文件實際上是在配置文件\ somethingrandom \ cert8.db和perfs.js我可以做一些像「%% i \ AppData \ Roaming \ Mozilla \ Firefox \ Profiles \\ * \ cert8.db」? – user2214162

+0

答案已更改爲每個用戶的搜索配置文件。 –

+0

我做到了這一點,但我正在將文件複製到C:\,它們應該在(%% i \ AppData \ Roaming \ Mozilla \ Firefox \ Profiles \ *。*)中? :ReplaceDB
如果不存在%1 GOTO:EOF
REM將%1替換爲DB 1!
重命名cert8.db cert8.db.old
複製C:\火狐\ cert8.db cert8.db
GOTO:EOF
:ChangeJS
IF NOT EXIST%1 GOTO:EOF
REM變化JS在%1在這裏!
set str1 =%〜1
set str1 =%str1:user_pref
(「network.proxy.autoconfig_url」,「http://pac.pe.lan/pac/proxy.pac」);

GOTO:EOF pro – user2214162

相關問題