From dea182687a76090f39150ab787fe65bc21ca6e3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=B0=B8=E5=85=A8?= Date: Tue, 20 Jan 2026 09:24:37 +0000 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=8E=9F=E6=9D=A5=E7=9A=84?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bat/Initialization.bat | 150 ----------------------------------------- 1 file changed, 150 deletions(-) delete mode 100644 bat/Initialization.bat diff --git a/bat/Initialization.bat b/bat/Initialization.bat deleted file mode 100644 index 5d498ef..0000000 --- a/bat/Initialization.bat +++ /dev/null @@ -1,150 +0,0 @@ -@echo off -setlocal - -::获取输入程序所在目录(通过注册表中的卸载路径) -:: 注册表路径 -set "regKeOFUninstall=HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Weasel" -:: 读取 UninstallString 值 -for /f "tokens=2*" %%a in ('reg query "%regKeOFUninstall%" /v "UninstallString" 2^>nul ^| findstr /i "UninstallString"') do ( - set "uninstallCmd=%%b" -) - -:: 检查是否找到 -if not defined uninstallCmd ( - echo 错误:未找到小狼毫(Weasel)的注册表项。 - pause - exit /b 1 -) - -::得到卸载程序目录 -echo %uninstallCmd% - -:: 去掉开头和结尾的引号,得到的目录,首尾有双引号,需要去掉 -call set "clean=%%uninstallCmd:"=%%" - -:: 提取所在的路径,也就是安装目录 -for %%I in ("%clean%") do set "apppath=%%~dpI" -echo 输入法程序安装在%apppath%WeaselDeployer.exe - -:: 找到用户文件夹路径,通过注册表中的路径 -set "regKeyOfUserDIR=HKCU\SOFTWARE\Rime\Weasel" -:: 读取 RimeUserDir 的值 -for /f "tokens=2*" %%a in ('reg query "%regKeyOfUserDIR%" /v "RimeUserDir" 2^>nul ^| findstr /i "RimeUserDir"') do ( - set "rimeUserDir=%%b" -) -:: 检查是否成功读取 -if not defined rimeUserDir ( - echo 错误:未找到 RimeUserDir 注册表项。 - pause - exit /b 1 -) - -echo 注册表读取的Rime用户目录: %rimeUserDir% -:: 去掉开头和结尾的引号,得到的目录,首尾有双引号,需要去掉,去掉后得到的就是用户目录 -call set "userpath=%%rimeUserDir:"=%%" -echo 获得的用户目录是:%userpath% - -:: 获取当前批处理文件所在目录(结尾带反斜杠) -set "CURRENT_DIR=%~dp0" -:: 构建 autosync.bat 的完整路径,为了后续添加定时任务 -set "TARGET_SCRIPT=%CURRENT_DIR%autosync.bat" -set "TARGET_VBS=%CURRENT_DIR%run_hidden.vbs" -set "CMD=wscript.exe //nologo \"%CURRENT_DIR%run_hidden.vbs\" \"%CURRENT_DIR%autosync.bat\"" -:: 去掉末尾的反斜杠(便于处理) -if "%CURRENT_DIR:~-1%"=="\" set "CURRENT_DIR=%CURRENT_DIR:~0,-1%" - -:: 获取上层目录(父目录) -for %%I in ("%CURRENT_DIR%") do set "PARENT_DIR=%%~dpI" -:: 拼接config -set "configpath=%PARENT_DIR%config" -echo 获得的配置文件目录是:%configpath% -call :link "custom_phrase.txt" -call :link "default.custom.yaml" -call :link "weasel.custom.yaml" -call :link "weasel.yaml" -call :link "default.yaml" -pause -echo 接下来重新部署输入法 - -if exist "%apppath%\WeaselDeployer.exe" ( - "%apppath%WeaselDeployer.exe" /deploy - echo 部署功能应该已经启动,确定后按任意键退出. - pause -) else ( - echo 没有找到可执行程序,请检查目录后重试 - pause - exit /b 1 -) -:: 接下来设置定时任务 -echo 目标bat文件路径%TARGET_SCRIPT% - -:: 检查 autosync.bat 是否存在 -if not exist "%TARGET_SCRIPT%" ( - echo 错误:未找到 %TARGET_SCRIPT% - pause - exit /b 1 -) -echo 目标vbs文件路径%TARGET_VBS% - -:: 检查 autosync.bat 是否存在 -if not exist "%TARGET_VBS%" ( - echo 错误:未找到 %TARGET_VBS% - pause - exit /b 1 -) -:: 转义路径中的空格和特殊字符(用双引号包裹,并在 schtasks 中用 \" 转义) -set "QUOTED_SCRIPT=\"%TARGET_SCRIPT%\"" -:: 任务名称 -set "TASK_NAME=RimeAutoSync" - -:: 创建每10分钟运行一次的任务(从现在开始,每天重复) -schtasks /create ^ - /tn "%TASK_NAME%" ^ - /tr "%CMD%" ^ - /sc minute ^ - /mo 10 ^ - /f - -if %errorlevel% equ 0 ( - echo. - echo 定时任务创建成功! - echo - 任务名称: %TASK_NAME% - echo - 执行频率: 每 10 分钟检查一次 - echo - 实际同步条件: 系统空闲 ≥30 分钟 - echo - 脚本路径: %CMD% - echo. - echo 注意:请确保 autosync.bat 与本脚本在同一目录。 -) else ( - echo 创建失败。建议以管理员身份运行(非必须,但可避免权限问题)。 -) - -echo 任务创建成功,按任意键退出. -pause -goto :eof -:: ================= 函数定义(用来创建文件软连接) ================= -:link -set "filename=%~1" -::设置软连链接 -echo 开始处理%filename% -set "TARGET=%configpath%\%filename%" -set "LINK=%userpath%\%filename%" -echo 目标文件是:%TARGET% -echo 软连接文件是:%LINK% -if exist "%TARGET%" ( - echo 找到配置文件了%TARGET% -) else ( - echo 配置目录下没有%filename%文件,请检查 - pause - exit /b 1 -) - -if exist "%LINK%" ( - echo 文件 %LINK% 已经存在,创建软连接前会删除文件,请确保该文件已经备份,然后按回车键继续,否则,请关闭后备份。 - set /p "dummy=" - del "%LINK%" -) else ( - echo 文件 %LINK% 不存在! -) -:: 前面如果用户已经按了回车,说明同意删除原来的文件,现在就可以创建文件软链接了 -mklink "%LINK%" "%TARGET%" -goto :eof \ No newline at end of file