先上代码,再后续解析和废话。。。。。。。。。。。 | :Srf | | Set "开始行关键字=[0804_list]" | | Set 结束行=23 | | For /f "tokens=1,* delims=:" %%Y in ('FindStr /N ".*" %~dnxp0 ^| Find ":%开始行关键字%"' ) do ( Set 开始行=%%Y ) | | Set/a 开始行=%开始行%+0 | | Echo.//4=>%Temp%\UTF-16LE.Txt&Certutil -Decode -f %Temp%\UTF-16LE.Txt %Temp%\UTF-16LE.Txt>Nul | | Echo.77u/>%Temp%\UTF8-BOM.Txt&Certutil -Decode -f %Temp%\UTF8-BOM.Txt %Temp%\SRF.Txt>Nul | | :Srf循环 | | For /f "tokens=1,2,* delims=:" %%A in ('FindStr /N /O ".*" %~dnxp0 ^| FindStr /B "\<%开始行%:"') do ( Set/a 结束行-=1,开始行+=1 | | If "%结束行%"=="0" Goto,Srf结束 | | Echo.%%C>>%Temp%\ANSI.Txt & Goto,Srf循环 ) | | :Srf结束 | | Cmd /d /u /c Type %Temp%\ANSI.Txt>%Temp%\ANSI-CR.Txt | | Chcp 65001 | | Type %Temp%\ANSI-CR.Txt>>%Temp%\UTF-16LE.Txt | | Type %Temp%\UTF-16LE.Txt>>%Temp%\SRF.Txt | | Chcp 936 | | Del %Temp%\UTF-16LE.Txt %Temp%\UTF8-BOM.Txt %Temp%\ANSI-CR.Txt %Temp%\ANSI0.Txt | | Start "" %~DP0\.TOOL\QQ拼音输入法\TSFToolv64.exe /loadcfg:%Temp%\SRF.Txt | | Del %Temp%\SRF0.Txt & Exit | | -------------------------------------------------------------------------------------- | | [0804_list] | | 1=美式键盘|{00000000-0000-0000-0000-000000000000}|0804|{34745C63-B2F0-4784-8B67-5E12C8701A31}|{00000000-0000-0000-0000-000000000000}|04090804| | | 2=中文 - QQ拼音输入法|{AE51F1C0-807F-4A64-AC55-F2ADF92E2603}|0804|{34745C63-B2F0-4784-8B67-5E12C8701A31}|{96EC4774-55A1-498B-827F-E95D5445B6C1}|00000000| | | | | [0804_disabled] | | 1=微软五笔|{6A498709-E00B-4C45-A018-8F9E4081AE40}|0804|{34745C63-B2F0-4784-8B67-5E12C8701A31}|{82590C13-F4DD-44F4-BA1D-8667246FDF8E}|00000000 | | 2=微软拼音|{81D4E9C9-1D3B-41BC-9E6C-4B40BF79E35E}|0804|{34745C63-B2F0-4784-8B67-5E12C8701A31}|{FA550B04-5AD7-411F-A5AC-CA038EC515D7}|00000000 | | 3=搜狗拼音输入法|{E7EA138E-69F8-11D7-A6EA-00065B844310}|0804|{34745C63-B2F0-4784-8B67-5E12C8701A31}|{E7EA138F-69F8-11D7-A6EA-00065B844311}|00000000 | | 4=卡饭输入法|{26B544D2-A6D1-4351-A1D2-1F37B89FDA03}|0804|{34745C63-B2F0-4784-8B67-5E12C8701A31}|{B712AFE6-6318-4F57-B3F5-76E63C3F5BD0}|00000000 | | | | [0804_switchkey] | | layout=Ctrl+Shift | | language=disable | | CAPS=Caps Lock | | Ime/NonIme Toggle=Ctrl+SPACE | | Symbol Toggle=Shift+SPACE | | Shape Toggle=Ctrl+. | | | | [0804_other] | | SwitchMode=0 | | LanguageBar=1 | | InputEmoji=1 | | DefaultIME=1 | | ---------------------------------------------------------------------------------------COPY |
鄙人有一U盘,里面放有一些自己常用的工具和一些自己常用的脚本和素材。
去网吧和朋友开黑的时候用的,
网吧里诸多的输入法和设置,我很不爽。一点也不符合自己的使用习惯,
于是编写了一个借助 TSFTool 输入法设置工具,自动设置输入法 和 剔除其他输入法 的脚本。
U盘里有QQ拼音的安装包,脚本自动安装,安装包 加参数 /silent 可以实现静默安装。Start "" %~dp0\.TOOL\QQ拼音输入法\QQPinyin_Setup_6.6.6304.400.exe /silentCOPY 安装完后,间隔点时间,再调用该脚本设置输入法,
因为TSFTool 输入法设置工具,的配置文件是“ 带有BOM UTF8编码本文配置文档”
原本配置文档直接导出后存在U盘里,直接导入就OK了。
开始我经常跑的网吧有好几个,每次使用U盘的盘符都不一样,
搞得我无奈了,只好借助脚本 %~dp0 来定位文件。
原本配置文档也可以 直接调用的,
可是鄙人有点轻微的强迫症。不喜欢U盘里有太多配置文档,
所有需要调用的,网址,配置文档,注册表,快捷方式,,都集成在脚本里,
如果要转移U盘的时候,直接带走脚本就OK了,,,,,
这也是我多年来编写自己“工具箱脚本”的习惯之一,,,
于是乎,,,,,,,,,,,,,便有了这个帖子!
OK!,,,回归话题脚本,,,
---------脚本解析--------------------Set "开始行关键字=[0804_list]"COPY 也就是开始读取配置内容的首行,,,,,,,,Set 结束行=23COPY 也就是配置文档所占的行数,,,,,,, | Echo.//4=>%Temp%\UTF-16LE.Txt&Certutil -Decode -f %Temp%\UTF-16LE.Txt %Temp%\UTF-16LE.Txt>Nul | | Echo.77u/>%Temp%\UTF8-BOM.Txt&Certutil -Decode -f %Temp%\UTF8-BOM.Txt %Temp%\SRF.Txt>NulCOPY |
创建 UTF-16LE 和 带有BOM UTF8编码 本文文档,
:Srf循环
(*)读取脚本内的内容输出到 ANSI.Txt 本文(脚本是 ANSI 编码,输出的自然也是 ANSI 本文)
:Srf结束Cmd /d /u /c Type %Temp%\ANSI.Txt>%Temp%\ANSI-CR.TxtCOPY 把 Windows(CRLF) ANSI 编码本文 转换成 macintosh(CR) ANSI 编码本文。Type %Temp%\ANSI-CR.Txt>>%Temp%\UTF-16LE.TxtCOPY 把 macintosh(CR) ANSI 编码本文 写入 UTF8-16LE 本文文档,Type %Temp%\UTF-16LE.Txt>>%Temp%\SRF.TxtCOPY 再把 UTF8-16LE 本文文档 写入 带有BOM UTF8编码 本文文档。
----写到这,有点基础的新手基本也看出来了-------------
没错,这就是本文编码转换过程,,
一般的转换程序,不支持 带有 BOM UTF8编码 的文档。
脚本是通过创建 特定本文 ,然后再写入、。
从以上的范本可以看出,我这脚本这样写法,可以忽略配置文档里的特殊字符 如: | < > %
也可以把配置内容扔到脚本任意位置,只要适配 开始行关键字 就可以了,Set "开始行关键字=[0804_list]"COPY ---------脚本解析完----------------
脚本分享出来给大家,相互 学习,借鉴,讨论。,,,,大神们口下留情。
代码是我从自己的“U盘工具箱”批处理里扣出来的。有些不必要的标签,,,自行谅解。 |