阅读:7169回复:33
写一个帮助新手设置参数的脚本
Tagged_by_kmc : 扩展 不兼容 配置文件 版本号 checkcompatibility extensions
一直以来Firefox新人都会为扩展伪不兼容而困扰,即:实际上是能用的,由于版本号不够而不允许安装。对此其实只需要在about:config中取消兼容性检查: extensions.checkCompatibility 设置为false 再安装扩展即可。不过,由于Firefox的门槛较高,很多新人不知道如何去调整about:config,尤其是上述键值默认不存在,需要新建。不仅如此,Firefox的很多设置,都很晦涩难懂。我当然知道Opera更难,但上次看到胖子写了个孟婆汤后,觉得有时如果能写一个脚本让用户运行,即可帮其调整Firefox的设置参数,岂不是很方便? Firefox的设置主要是在配置文件夹中,而事实上,大部分用户不知道这个文件夹在哪里。情有可原,因为这个文件夹隐藏在一个很深的、对XP而言深达七级、各系统不尽相同的目录中。而在Windows下,通过 cd %appdata%\mozilla\firefox\profiles 可以进入,如此完成了一半的工作。 下面的情况是还有一级目录要进入,这里每个用户的配置文件夹名不尽相同,印象中对于一个没有自己修改过Firefox用户,这个配置文件夹应该是8位随机字母_数字组合.Default,例如 mmbi5lg7.Default 有且只有一个目录,这时如果用 dir /b /d *Default* 可以得到mmbi5lg7.Default,现在首先的问题是在Dos命令中,如何再cd进入这个目录呢?我的办法很笨,是把这个结果存成文件,再用for命令读出来,即 dir /b /d *Default* >temp.txt for /f "tokens=1 delims=" %%i in (temp.txt) do cd %%i del ..\temp.txt OK现在我们在用户的Default配置文件夹了,一切都归我们控制啦(奸笑)。 prefs.js?不,还是拿user.js比较好,因为这个文件默认没有,搞砸了可以直接删掉;且prefs.js太乱,不碰为妙。下面就是 echo user_pref("extensions.checkCompatibility", false); >>user.js echo user_pref("extensions.checkUpdateSecurity", false); >>user.js 用>>表追加,以免清除之前已有的,我记得重复的条目会被Firefox自己清理掉,所以不用担心加重复了。 OK,现在屏幕那边的MM已经可以装扩展了。 下面的问题是:万一 %appdata%\mozilla\firefox\profiles 目录下不止一个配置文件夹呢?一般来说这个目录下如果有超过一个的文件夹,基本上已经证明该用户知道配置文件这回事。但为了以防万一,我觉得有一个很简单的办法。就是在进入mmbi5lg7.Default之后,测试一下parent.lock这个文件是否存在,前提是用户没有关掉Firefox,而这也正好,因为如果用户有多个配置文件,用这个方法可以测试到底应该改哪一个。具体来说可以在上面那条for语句中加上if判断,并且把存在parent.lock的目录作为最终结果返回,再进行下一步echo user.js的操作(当然也可以在找到parent.lock后马上操作user.js并break掉后面的for循环)。 水平有限目前还没有完善,等高手来看看。 cd /d %appdata%\mozilla\firefox\profiles dir /d /b *Default* >profilename.txt for /f "tokens=1 delims=" %%i in (profilename.txt) do cd %%i del ..\profilename.txt echo user_pref("extensions.checkCompatibility", false); >>user.js echo user_pref("extensions.checkUpdateSecurity", false); >>user.js |
|
|
1楼#
发布于:2009-08-28 20:20
有道理,有道理
|
|
2楼#
发布于:2009-08-28 20:20
我是说如果会自己新建配置文件了那就不用咱们帮了:D
另外可能是因为有中文,才变成UTF-8编码的。 |
|
|
3楼#
发布于:2009-08-28 20:20
若有多个配置文件的话,里面也可能有中文的。我的便是中文。。。。。
|
|
4楼#
发布于:2009-08-28 20:20
UTF-8编码不要紧吧,里面 只有ASCII字符啊。
|
|
|
5楼#
发布于:2009-08-28 20:20
我的Profiles一安装FF就有的,确实是UTF-8编码
|
|
6楼#
发布于:2009-08-28 20:20
感谢Kmc的提醒,找到了替换的比较简单的办法。
现在考虑了profile(s).ini单复数的问题,以及cd /c不支持正斜杠的问题。shenyixin99的关于profiles.ini文件是UTF-8编码的问题不知道怎么办。 @echo off echo 请确保Firefox正在运行 pause set current=%cd% cd /d %appdata%\mozilla\firefox\ if exist profile.ini (set filename=profile.ini) else (set filename=profiles.ini) for /f "tokens=1 delims=:" %%i in ('findstr /n /c:"Default=1" %filename%') do set /a "Row=%%i-2" for /f "skip=%Row% tokens=2 delims==" %%j in (%filename%) do ( setlocal enabledelayedexpansion set "pathstr=%%j" set pathstr=!pathstr:/=\! cd /d !pathstr! goto :continue ) :continue IF EXIST parent.lock goto doecho echo 没有找到正确的配置文件夹,退出 goto doquit :doecho echo 成功找到配置文件 taskkill /im firefo* ping 127.0.0.1 -n 3 >NUL ::--------------------需要加入的设置------------------- echo user_pref("extensions.checkCompatibility", false); >>user.js echo user_pref("extensions.checkUpdateSecurity", false); >>user.js ::--------------------需要加入的设置------------------- echo 成功写入"user.js"文件 goto doquit :doquit cd /d %current% echo 拜拜 这样应该可以有更大的适用范围。 |
|
7楼#
发布于:2009-08-28 20:20
看来是的了,因为我的profiles.ini默认是ANSI,听说find可以搜索UTF-8的文件,我正在尝试……
算了,听说Windows命令行默认不支持UTF-8。 shenyixin99你真的确定你的profiles.ini默认不是ANSI编码么? |
|
8楼#
发布于:2009-08-28 20:20
我的profiles.ini文件的编码格式是UTF-8,默认就是这样的,难道也要改成ANSI么。。。。。。
|
|
9楼#
发布于:2009-08-28 20:20
看看你profiles.ini文件的编码格式是不是ANSI。
|
|
10楼#
发布于:2009-08-28 20:20
此文太高深了,没有编程基础的人看不太明白,还是走捷径,只要因版本不同不让安装的,那就等着扩展的作者修改成高版本后再安了!
|
|
11楼#
发布于:2009-08-28 20:20
用楼上的BAT文件还是不行哟。
我用firefox.exe -profilemanager打开配置管理器,然后添加一个配置,在我这里,新添加的配置文件后缀默认的是“配置文件”而不是“default"。Profiles/286yc9h2.default可以正常进入,而在进入“Profiles/2wi3owhf.配置文件”时因为出现中文而进入不了 我的profiles.ini内容如下: [General] StartWithLastProfile=1 [Profile0] Name=default IsRelative=1 Path=Profiles/286yc9h2.default [Profile1] Name=配置文件 IsRelative=1 Path=Profiles/2wi3owhf.配置文件 Default=1 |
|
12楼#
发布于:2009-08-28 20:20
我用的notepad++
![]() 我测试了,用UTF-8就打不开中文名的路径,用ANSI就可以。不知道你那里为什么不行。试试我这个文件。 win7是复数 正反能进 就是不知道VISTA是怎么样的了。如果是profile.ini,又不支持cd正斜杠进入目录,还得把正斜杠替换为反斜杠才行。 |
|
|
13楼#
发布于:2009-08-28 20:20
把批处理的文本改为ANSI格式编码。 我用记事本程序编辑批处理的时候,选择另存为,默认的就是ANSI格式编码,怎还不可以处理中文路径???怎样改呢 ![]() |
|
14楼#
发布于:2009-08-28 20:20
win7是复数 正反能进
|
|
|
上一页
下一页