kmc
kmc
管理员
管理员
  • UID165
  • 注册日期2004-11-25
  • 最后登录2024-08-29
  • 发帖数9187
  • 经验398枚
  • 威望1点
  • 贡献值124点
  • 好评度41点
  • 忠实会员
  • 终身成就
  • 社区居民
阅读:7169回复:33

写一个帮助新手设置参数的脚本

楼主#
更多 发布于:2009-08-28 20:20
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
Waterfox Current和Firefox Nightly都用,逐渐走出XUL扩展依赖
shenyixin99
狐狸大王
狐狸大王
  • UID30127
  • 注册日期2009-08-19
  • 最后登录2011-11-20
  • 发帖数318
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
1楼#
发布于:2009-08-28 20:20
有道理,有道理
kmc
kmc
管理员
管理员
  • UID165
  • 注册日期2004-11-25
  • 最后登录2024-08-29
  • 发帖数9187
  • 经验398枚
  • 威望1点
  • 贡献值124点
  • 好评度41点
  • 忠实会员
  • 终身成就
  • 社区居民
2楼#
发布于:2009-08-28 20:20
我是说如果会自己新建配置文件了那就不用咱们帮了:D

另外可能是因为有中文,才变成UTF-8编码的。
Waterfox Current和Firefox Nightly都用,逐渐走出XUL扩展依赖
shenyixin99
狐狸大王
狐狸大王
  • UID30127
  • 注册日期2009-08-19
  • 最后登录2011-11-20
  • 发帖数318
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
3楼#
发布于:2009-08-28 20:20
若有多个配置文件的话,里面也可能有中文的。我的便是中文。。。。。
kmc
kmc
管理员
管理员
  • UID165
  • 注册日期2004-11-25
  • 最后登录2024-08-29
  • 发帖数9187
  • 经验398枚
  • 威望1点
  • 贡献值124点
  • 好评度41点
  • 忠实会员
  • 终身成就
  • 社区居民
4楼#
发布于:2009-08-28 20:20
UTF-8编码不要紧吧,里面 只有ASCII字符啊。
Waterfox Current和Firefox Nightly都用,逐渐走出XUL扩展依赖
shenyixin99
狐狸大王
狐狸大王
  • UID30127
  • 注册日期2009-08-19
  • 最后登录2011-11-20
  • 发帖数318
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
5楼#
发布于:2009-08-28 20:20
我的Profiles一安装FF就有的,确实是UTF-8编码
xxp2277
千年狐狸
千年狐狸
  • UID24388
  • 注册日期2008-05-31
  • 最后登录2025-06-24
  • 发帖数1513
  • 经验133枚
  • 威望0点
  • 贡献值46点
  • 好评度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 拜拜

这样应该可以有更大的适用范围。
xxp2277
千年狐狸
千年狐狸
  • UID24388
  • 注册日期2008-05-31
  • 最后登录2025-06-24
  • 发帖数1513
  • 经验133枚
  • 威望0点
  • 贡献值46点
  • 好评度8点
  • 社区居民
7楼#
发布于:2009-08-28 20:20
看来是的了,因为我的profiles.ini默认是ANSI,听说find可以搜索UTF-8的文件,我正在尝试……
算了,听说Windows命令行默认不支持UTF-8。
shenyixin99你真的确定你的profiles.ini默认不是ANSI编码么?
shenyixin99
狐狸大王
狐狸大王
  • UID30127
  • 注册日期2009-08-19
  • 最后登录2011-11-20
  • 发帖数318
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
8楼#
发布于:2009-08-28 20:20
我的profiles.ini文件的编码格式是UTF-8,默认就是这样的,难道也要改成ANSI么。。。。。。
xxp2277
千年狐狸
千年狐狸
  • UID24388
  • 注册日期2008-05-31
  • 最后登录2025-06-24
  • 发帖数1513
  • 经验133枚
  • 威望0点
  • 贡献值46点
  • 好评度8点
  • 社区居民
9楼#
发布于:2009-08-28 20:20
看看你profiles.ini文件的编码格式是不是ANSI。
7liesofmlm
小狐狸
小狐狸
  • UID29892
  • 注册日期2009-07-31
  • 最后登录2010-04-07
  • 发帖数28
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
10楼#
发布于:2009-08-28 20:20
此文太高深了,没有编程基础的人看不太明白,还是走捷径,只要因版本不同不让安装的,那就等着扩展的作者修改成高版本后再安了!
暮光迷--中国人气最旺的暮光之城爱好者聚集地!暮光之城2
shenyixin99
狐狸大王
狐狸大王
  • UID30127
  • 注册日期2009-08-19
  • 最后登录2011-11-20
  • 发帖数318
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
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
xxp2277
千年狐狸
千年狐狸
  • UID24388
  • 注册日期2008-05-31
  • 最后登录2025-06-24
  • 发帖数1513
  • 经验133枚
  • 威望0点
  • 贡献值46点
  • 好评度8点
  • 社区居民
12楼#
发布于:2009-08-28 20:20
我用的notepad++

我测试了,用UTF-8就打不开中文名的路径,用ANSI就可以。不知道你那里为什么不行。试试我这个文件。
win7是复数 正反能进

就是不知道VISTA是怎么样的了。如果是profile.ini,又不支持cd正斜杠进入目录,还得把正斜杠替换为反斜杠才行。
附件名称/大小 下载次数 最后更新
进入Firefox默认配置文件夹.txt (1KB)  7 2009-08-30 09:23
shenyixin99
狐狸大王
狐狸大王
  • UID30127
  • 注册日期2009-08-19
  • 最后登录2011-11-20
  • 发帖数318
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
13楼#
发布于:2009-08-28 20:20
把批处理的文本改为ANSI格式编码。


我用记事本程序编辑批处理的时候,选择另存为,默认的就是ANSI格式编码,怎还不可以处理中文路径???怎样改呢 [/quote][/code]
smoke
千年狐狸
千年狐狸
  • UID3052
  • 注册日期2005-02-16
  • 最后登录2015-02-01
  • 发帖数2367
  • 经验12枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
  • 忠实会员
14楼#
发布于:2009-08-28 20:20
win7是复数 正反能进
遇到问题请善用论坛搜索功能
上一页
游客

返回顶部