要处理INTL.INF文件中的若干个行:
1、将E00E0804改为E0860804
2、将pintlgnt.ime改为sun86.ime
3、删除simsun.ttc,,,65536一行
4、在[SourceDisksFiles]段的末尾追加3行内容:
Sun86.IME = 107,,,,,,,0,0
Sun86.mb = 107,,,,,,,0,0
Sun86.chm = 107,,,,,,,0,0
5、删除其它所有的含有pintlgnt字符串的行(但不能把含有pintlgnt.ime字符串的行删掉,因为它要改成sun86.ime),pintlgnt字符串在各行中的位置不确定。
目前,已经实现1、2、3项,但无法实现4、5两项需求。当前代码如下:- type INTL.INF>INTL.TMP@echo off&setlocal enabledelayedexpansion
- (for /f "tokens=1* delims=:" %%a in ('findstr /n .* "INTL.TMP"') do if "%%b"=="" (echo/) else (
- set "hy=%%b"
- set hy=!hy:E00E0804=E0860804!
- set hy=!hy:pintlgnt.ime=sun86.ime!
- if /i not "!hy:~0,18!"=="simsun.ttc,,,65536" echo !hy!
- ))>"INTL.INF"
复制代码 这里对添加行还有一个要求,即首先要找到[SourceDisksFiles]段,然后在它的下一个段开始前添加行,因此不能用人工定位该段最后一行字符串的办法添加。
实际上还需要修改txtsetup.sif和 DOSNET.INF两个文件,情况类似。只是想通过修改这个文件,自己学会利用段名来确定位置,在指定位置添加含有特殊字符的行,以及删改含有某个位置不确定的字符串所在的行。
在论坛搜索到了一些添加行的方法,一时无从下手,又急着用,就直接问了。
附:INTL.INF文件压缩件(UNCODE编码)
[ 本帖最后由 stance 于 2011-1-10 16:27 编辑 ] |