先上代码,再后续解析和废话。。。。。。。。。。。- :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
- ---------------------------------------------------------------------------------------
复制代码 鄙人有一U盘,里面放有一些自己常用的工具和一些自己常用的脚本和素材。
去网吧和朋友开黑的时候用的,
网吧里诸多的输入法和设置,我很不爽。一点也不符合自己的使用习惯,
于是编写了一个借助 TSFTool 输入法设置工具,自动设置输入法 和 剔除其他输入法 的脚本。
U盘里有QQ拼音的安装包,脚本自动安装,安装包 加参数 /silent 可以实现静默安装。- Start "" %~dp0\.TOOL\QQ拼音输入法\QQPinyin_Setup_6.6.6304.400.exe /silent
复制代码 安装完后,间隔点时间,再调用该脚本设置输入法,
因为TSFTool 输入法设置工具,的配置文件是“ 带有BOM UTF8编码本文配置文档”
原本配置文档直接导出后存在U盘里,直接导入就OK了。
开始我经常跑的网吧有好几个,每次使用U盘的盘符都不一样,
搞得我无奈了,只好借助脚本 %~dp0 来定位文件。
原本配置文档也可以 直接调用的,
可是鄙人有点轻微的强迫症。不喜欢U盘里有太多配置文档,
所有需要调用的,网址,配置文档,注册表,快捷方式,,都集成在脚本里,
如果要转移U盘的时候,直接带走脚本就OK了,,,,,
这也是我多年来编写自己“工具箱脚本”的习惯之一,,,
于是乎,,,,,,,,,,,,,便有了这个帖子!
OK!,,,回归话题脚本,,,
---------脚本解析--------------------复制代码 也就是开始读取配置内容的首行,,,,,,,,复制代码 也就是配置文档所占的行数,,,,,,,- 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
复制代码 创建 UTF-16LE 和 带有BOM UTF8编码 本文文档,
:Srf循环
(*)读取脚本内的内容输出到 ANSI.Txt 本文(脚本是 ANSI 编码,输出的自然也是 ANSI 本文)
:Srf结束- Cmd /d /u /c Type %Temp%\ANSI.Txt>%Temp%\ANSI-CR.Txt
复制代码 把 Windows(CRLF) ANSI 编码本文 转换成 macintosh(CR) ANSI 编码本文。- Type %Temp%\ANSI-CR.Txt>>%Temp%\UTF-16LE.Txt
复制代码 把 macintosh(CR) ANSI 编码本文 写入 UTF8-16LE 本文文档,- Type %Temp%\UTF-16LE.Txt>>%Temp%\SRF.Txt
复制代码 再把 UTF8-16LE 本文文档 写入 带有BOM UTF8编码 本文文档。
----写到这,有点基础的新手基本也看出来了-------------
没错,这就是本文编码转换过程,,
一般的转换程序,不支持 带有 BOM UTF8编码 的文档。
脚本是通过创建 特定本文 ,然后再写入、。
从以上的范本可以看出,我这脚本这样写法,可以忽略配置文档里的特殊字符 如: | < > %
也可以把配置内容扔到脚本任意位置,只要适配 开始行关键字 就可以了,复制代码 ---------脚本解析完----------------
脚本分享出来给大家,相互 学习,借鉴,讨论。,,,,大神们口下留情。
代码是我从自己的“U盘工具箱”批处理里扣出来的。有些不必要的标签,,,自行谅解。 |