删除原来的初始化文件
This commit is contained in:
@@ -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
|
|
||||||
Reference in New Issue
Block a user