# -*- coding: utf-8 -*- """把运行时生成的那个 bat 也改名,并更新打包清单。 firewall.write_script 会在程序目录生成一份可右键提权运行的 netsh 脚本, 原来叫「放行防火墙_以管理员运行.bat」,按要求改成 fxfhq.bat。 错误提示里的文件名也要跟着改。 """ from __future__ import annotations import sys from pathlib import Path ROOT = Path(r"C:\Users\shu\Desktop\deepseekagent\LanRemote") FIREWALL = ROOT / "windows" / "lanremote" / "firewall.py" PACKAGE = ROOT / "_build" / "package.py" OLD_NAME = "放行防火墙_以管理员运行.bat" NEW_NAME = "fxfhq.bat" def main() -> int: ok = True text = FIREWALL.read_text(encoding="utf-8") count = text.count(OLD_NAME) if count == 0: print(" [跳过] firewall.py 里没有旧名字") else: text = text.replace(OLD_NAME, NEW_NAME) FIREWALL.write_text(text, encoding="utf-8") print(f" firewall.py: 改了 {count} 处文件名引用") pkg = PACKAGE.read_text(encoding="utf-8") old_block = '''TOOL_FILES = ( "工具箱.bat", "一键修复防火墙.bat", "网络自检.bat", "网络自检.py", )''' new_block = '''TOOL_FILES = ( "fxfhq.bat", "wlzj.bat", "xffhq.bat", )''' if old_block in pkg: pkg = pkg.replace(old_block, new_block, 1) print(" package.py: TOOL_FILES 已更新") else: print(" [跳过] package.py 的 TOOL_FILES 锚点没找到") ok = False # 说明文档里的文件名 for old, new, tag in ((OLD_NAME, NEW_NAME, "firewall 脚本名"), ("工具箱.bat", "(已移除)", "工具箱"), ("网络自检.bat", "wlzj.bat", "网络自检"), ("一键修复防火墙.bat", "xffhq.bat", "修复防火墙")): if old in pkg: pkg = pkg.replace(old, new) print(f" package.py: 说明里的「{tag}」已更新") PACKAGE.write_text(pkg, encoding="utf-8") import ast for label, path in (("firewall.py", FIREWALL), ("package.py", PACKAGE)): try: ast.parse(path.read_text(encoding="utf-8")) print(f" {label}: 语法 OK") except SyntaxError as exc: print(f" {label}: 语法错误 {exc}") ok = False return 0 if ok else 1 if __name__ == "__main__": sys.exit(main())