# -*- coding: utf-8 -*- """把 --uninstall 接进入口。 顺便把帮助文本里写死的 LanRemote-Agent.exe 换成 ykxmz.exe。 """ from __future__ import annotations import sys from pathlib import Path RUN = Path(r"C:\Users\shu\Desktop\deepseekagent\LanRemote\windows" r"\run_agent.py") HELP_OLD = ''' --relay-status 查看中转连接状态 """''' HELP_NEW = ''' --relay-status 查看中转连接状态 --uninstall 卸载:停进程、删开机自启、删数据目录 """''' DOC_OLD = '''要重新设置:LanRemote-Agent.exe --setup''' DOC_NEW = '''要重新设置:ykxmz.exe --setup''' FLAG_OLD = ''' parser.add_argument("--relay-status", action="store_true", help="查看中转连接状态") return parser.parse_args(argv)''' FLAG_NEW = ''' parser.add_argument("--relay-status", action="store_true", help="查看中转连接状态") parser.add_argument("--uninstall", action="store_true", help="卸载:停进程、删开机自启、删数据目录") return parser.parse_args(argv)''' DISPATCH_OLD = ''' if args.relay_status: return cli_relay_status() ''' DISPATCH_NEW = ''' if args.relay_status: return cli_relay_status() if args.uninstall: return cli_uninstall() ''' FUNC_OLD = '''def attach_console() -> None:''' FUNC_NEW = '''def cli_uninstall() -> int: """卸载。会开一个控制台让用户看到过程。""" attach_console() from lanremote.uninstall import run as do_uninstall try: print(do_uninstall()) except Exception as exc: # noqa: BLE001 print(f"卸载出错:{exc}") return 1 print() input("按回车关闭…") return 0 def attach_console() -> None:''' def main() -> int: text = RUN.read_text(encoding="utf-8") ok = True for old, new, tag in ((DOC_OLD, DOC_NEW, "说明里的 exe 名"), (HELP_OLD, HELP_NEW, "帮助文本加 --uninstall"), (FLAG_OLD, FLAG_NEW, "参数定义"), (DISPATCH_OLD, DISPATCH_NEW, "分发"), (FUNC_OLD, FUNC_NEW, "cli_uninstall 函数")): if old not in text: print(f" [跳过] {tag} —— 锚点没找到") ok = False continue text = text.replace(old, new, 1) print(f" {tag}") RUN.write_text(text, encoding="utf-8", newline="\n") import ast try: ast.parse(text) print(" 语法 OK") except SyntaxError as exc: print(f" 语法错误: 行 {exc.lineno}: {exc.msg}") ok = False return 0 if ok else 1 if __name__ == "__main__": sys.exit(main())