我正在做的是創建一個批處理文件來替換用戶應用程序數據文件夾中的cert8.db文件以及將一行文本插入其中一個首選項.js文件。通常情況下,這很容易,問題在於我的一些用戶有很多機會擁有多個Firefox配置文件,所以我想要一個腳本來替換firefox/profiles文件夾中的所有cert8.db文件,並插入1行接下來放入firefox/profiles文件夾中的所有prefs.js文件。批處理腳本刪除和替換多個位置中的文件
可以這樣做嗎?如果可能,我願意使用vb。
我正在做的是創建一個批處理文件來替換用戶應用程序數據文件夾中的cert8.db文件以及將一行文本插入其中一個首選項.js文件。通常情況下,這很容易,問題在於我的一些用戶有很多機會擁有多個Firefox配置文件,所以我想要一個腳本來替換firefox/profiles文件夾中的所有cert8.db文件,並插入1行接下來放入firefox/profiles文件夾中的所有prefs.js文件。批處理腳本刪除和替換多個位置中的文件
可以這樣做嗎?如果可能,我願意使用vb。
你可以做這樣的事情:
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的來源和你想的喜好添加或更新什麼。
我插入了新的代碼:在firefox配置文件下'newcertfile =「C:\ firefox \ cert8.db」''如果fso.FileExists(certdb)然後objFSO.CopyFile「cert8.db」,「cert8.old」objFSO.CopyFile newcertfile,OverwriteExisting' – user2214162
除非將工作目錄設置爲配置文件夾,否則需要使用'CopyFile'中的完整路徑。另外我會使用'MoveFile'來重命名舊的'cert8.db',所以你不需要在第二步強制覆蓋現有的文件。另外,你的第二個'CopyFile'只有源路徑。您還需要目標路徑。 –
我做了調整,但它出了這個錯誤:對於每個fldr在fso.GetFolder(profilesFolder),我調整profilesFolder到'profilesFolder =「C:\ users \%USERNAME%」但它說路徑不存在 – user2214162
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。
這兩個文件實際上是在配置文件\ somethingrandom \ cert8.db和perfs.js我可以做一些像「%% i \ AppData \ Roaming \ Mozilla \ Firefox \ Profiles \\ * \ cert8.db」? – user2214162
答案已更改爲每個用戶的搜索配置文件。 –
我做到了這一點,但我正在將文件複製到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
任務1是找到Firefox的配置文件存儲位置。那麼找到cert8.db文件並更換很容易,如果它們未被鎖定。 prefs.js - 你是否只想將文本添加到文件的末尾,而不管它們是什麼? – foxidrive