阅读:2580回复:15

执行yong-quit.exe后能否生成未合并的user.txt

楼主#
更多 发布于:2024-04-02 10:23
想通过批处理对输入法打包备份
但由于输入的过程中可能会有码表变动未合并
所以尝试在yong-quit之后执行

yong --tool=libmb.so mb.txt out.txt dump --option=head,main,user --format=yong
类似的命令
实验下来发现yong.exe生成user.txt并不是实时的
如果码表变动后立即yong-quit
yong.exe可能会未来得及生成新的user.txt
所以会出现一定机率的失败
而主动点击主程序yong.exe系统栏图标右键菜单
点退出时可以生成user.txt
只是这样就没有了自动执行的便捷


可否为yong-quit添加一个命令参数
不是kill而是传送消息给yong.exe
使其正常退出为当前未合并的码表生成user.txt
甚至直接生成合并后的新码表
就像使用主程序系统栏菜单项中的“工具→合并用户码表”一样的效果


若能再进一步为yong-config配置工具添加一个配置选项
开启系统关机重启时自动生成合并后新码表的功能
那就太好了


谢谢先!
沙发#
发布于:2024-04-02 10:45
还有一个小问题
yong.exe --tool=libmb.so mb\mb.txt  .yong\mb\out.txt dump --option=head,main,user --format=yong
这里码表文件的路径参数好像只能接受针对于yong.exe的相对路径
假设在批处理bat中这样设置
set src=c:\app\yong
set cfg=%src%\.yong
上面的合并码表命令改为
%src%\yong.exe --tool=libmb.so %src%\mb\mb.txt %cfg%\mb\out.txt dump --option=head,main,user --format=yong
就无法执行成功
如果批处理当前执行起始位置不是yong.exe所处的位置
还需要cd到yong.exe所外的位置
如果可以解析绝对路径就更好了


再次感谢先!
板凳#
发布于:2024-04-02 10:54
再请教一个小问题
yong.exe --tool=libmb.so mb\mb.txt  .yong\mb\out.txt dump --option=head,main,user --format=yong
原始码表mb.txt中如果含有构词码的话
这样的命令不能保留构词码
如果想在新生成的合并码表中保留构词码需要添加什么参数?


就像这种:

zzzze 断断续续
zzzzj 结缔组织 妇女组织 纤维组织
zzzzu 丝丝缕缕
^ad 邘
^ad 盂
^ad 于
^ae 雃
^ae 开
^ae 頇
^ae 刑
^ae 形

想保留^开头的构词码怎么办
主动点击主程序yong.exe系统栏图标右键菜单合并用户码表是可以正常保留的
地板#
发布于:2024-04-02 11:08
longwu9t:再请教一个小问题
yong.exe --tool=libmb.so mb\mb.txt  .yong\mb\out.txt dump --option=head,main,user --format=yong
原始码表mb.txt中如果含有...
回到原帖
自答一下


yong.exe --tool=libmb.so mb\mb.txt  .yong\mb\out.txt dump --option=head,main,user,zaoci --format=yong
其实我在zaoci这个参数之前实验过gouci
但失败了
又看了一下帮助
发现使用的是造词码这个名称
所以又实验了zaoci这个参数

还是偶有失败偶有成功
这随机性的结果让我晕了
4楼#
发布于:2024-04-02 12:26
longwu9t:还有一个小问题
yong.exe --tool=libmb.so mb\mb.txt  .yong\mb\out.txt dump --option=head,main,user --format=yong
这里码表文件的路径参数好像只...
回到原帖
应该是支持绝对路径的,但你这么写是不是路径中有空格或者汉字可能导致程序出问题
5楼#
发布于:2024-04-02 12:28
longwu9t:再请教一个小问题
yong.exe --tool=libmb.so mb\mb.txt  .yong\mb\out.txt dump --option=head,main,user --format=yong
原始码表mb.txt中如果含有...
回到原帖
--option=head,main,user,adjust
6楼#
发布于:2024-04-02 13:10
谢谢dgod回复
参数adjust是有效的
向成功又迈出一步^_^

路径的问题我又测试了多次
确保是不存在中文与特殊字符的

目前看到
mb.txt这个参数是yong.exe的相对路径
out.txt这个参数如果未写明相对路径
则默认生成文件是放在.yong目录下

这只是我测试的结果
大概率是不准确性的

再次感谢!
7楼#
发布于:2024-04-03 15:07
留个记号备用




rem createBK.bat
rem 此脚本合并用户码表后打包备份yong输入法
rem 为合并码表应确保此脚本所在目录为%src%
rem 即32位的yong.exe可执行程序所在目录
rem 可在zhengma.txt码表中添加命令直通车
rem bkup $[备份]$GO(createBK.bat)
rem 如果想静默执行7-Zip打包
rem 可将7zG.exe改为7z.exe反之亦然
rem 输入法开启时中文输入状态下输入bkup选择备份即可
rem 输入法不开启时单独执行此批处理亦可
rem 用户可根据需要更改路径配置项及码表文件
rem 已知yong.exe合并用户码表时可能存在只识别相对路径的问题
rem 后续若有输入法版本更新再行调整


rem 配置路径
set pack="c:\Program Files\7-Zip"
set src=c:\proApp\TotalCMD\addon\yong
set cfg=%src%\.yong
set tmp=z:
set bkup=d:\soft\tool\ime


rem 退出输入法
if exist %src%\yong-quit.exe (%src%\yong-quit.exe) else (taskkill /F /IM yong.exe)


rem 遍历输入法目录删除升级后残留的旧文件
for /r %src%\ %%a in (*del) do del /f /q %%a
rem 若tsf文件夹下dll被占用则需杀掉explorer后手动处理


rem 合并用户码表
if exist %cfg%\user.txt (
if not exist %cfg%\mb (md %cfg%\mb)
yong.exe --tool=libmb.so mb\zhengma.txt .yong\mb\zhengma.txt dump --option=head,main,user,adjust --format=yong
)


rem 更新合并后的用户码表
if exist %cfg%\mb\zhengma.txt move /y %cfg%\mb\zhengma.txt %src%\mb\


rem 删除配置更改后的旧配置文件
if exist %cfg%\yong.ini.old (move /y %cfg%\yong.ini %src%\)


rem 清理并重建用户配置目录
rd /s /q %cfg%
md %cfg%
copy %src%\yong.ini %cfg%\


rem 打包输入法
%pack%\7z.exe a %tmp%\yong.7z %src% -aoa -m0=BCJ2 -m1=LZMA:d25 -m2=LZMA:d19 -m3=LZMA:d19 -mb0:1 -mb0s1:2 -mb0s2:3


rem 如果存在备份文件就进行备份更新
if exist %bkup%\yong.7z (move /y %tmp%\yong.7z %bkup%\)


rem 重启输入法
%src%\yong.exe


rem 退出批处理若未退出手动关闭CMD窗口即可
exit
8楼#
发布于:2024-04-03 20:23
yong-quit.exe使用后不能保存的问题我也无法确定,请先升级程序到最新测试版。
yong-quit.exe源代码已丢失,不清楚它为什么特别。重写了一个,我测试过是好的。
附件名称/大小 下载次数 最后更新
yong-quit.7z (6KB)  12 04-03 20:22
9楼#
发布于:2024-04-03 20:41
dgod:yong-quit.exe使用后不能保存的问题我也无法确定,请先升级程序到最新测试版。
yong-quit.exe源代码已丢失,不清楚它为什么特别。重写了一个,我测试过是好的。
回到原帖
这个附件中的yong-quit在我系统里无法起到退出yong.exe进程的作用
多次执行该程序后
yong.exe依然在运行
不知道是什么情况

winsrv 2022 21H2
上一页
游客

返回顶部