Python自删除代码“先删除执行文件,在自毁删除”

作者 :
免费
  • 正文
  • 学校机房批量网刻系统,在桌面上,有“设置计算机名和IP地址.exe", "配置.ini”,这个是给计算机手动设置IP和计算机名的,当设置完成后,要在极域教室机上执行1.bat 命令,进行自删除。但在极域4.0版本上,则执行不了自删除任务。

    下面我用Python,写了一个执行代码,进行自删除。代码:

    import os
    import subprocess
    import sys
    import shutil

    def delete_files():
    # 指定要删除的文件列表
    files_to_delete = ["设置计算机名和IP地址.exe", "配置.ini", "1.cmd", "1.bat"]

    # 删除指定文件
    for file_name in files_to_delete:
    try:
    os.remove(file_name)
    print(f"文件 '{file_name}' 已成功删除。")
    except FileNotFoundError:
    print(f"文件 '{file_name}' 不存在。")

    # 标记自身为删除
    try:
    # 获取 PyInstaller 临时目录
    meipass = sys._MEIPASS
    exe_name = os.path.basename(sys.executable)
    marker_path = os.path.join(meipass, "delete_marker.txt")

    # 创建一个标记文件
    with open(marker_path, 'w') as marker_file:
    marker_file.write("To be deleted on next run.")

    print(f"可执行文件 '{sys.argv[0]}' 已标记为删除,将在下一次运行时删除。")
    except FileNotFoundError:
    print(f"无法找到可执行文件 '{sys.argv[0]}'。")

    if __name__ == "__main__":
    delete_files()

    # 在下一次运行时,如果存在标记文件,则删除自身
    marker_path = os.path.join(sys._MEIPASS, "delete_marker.txt")
    if os.path.exists(marker_path):
    try:
    os.remove(marker_path)
    print(f"标记文件 '{marker_path}' 存在,将删除自身。")
    except Exception as e:
    print(f"删除标记文件时出错: {e}")

    # 延时一点时间确保删除标记文件,然后删除自身
    subprocess.Popen(["cmd", "/c", "timeout", "/nobreak", "/t", "1", "&&", "del", "/f", "/q", sys.argv[0]], shell=True)

    编译:pyinstaller --onfile --noconsole 1.py

    pyinstaller --onefile 1.py 带控制台

    因为正在运行的文件通常不能直接删除。我建议采用两步走的方法:首先标记文件为删除,然后使用一个辅助的删除器来删除文件。这里我添加了一个标记文件 delete_marker.txt,标记文件内容表示在下一次运行时要删除。在下一次运行时,如果检测到标记文件存在,就删除标记文件并尝试删除自身。

    Python自删除代码“先删除执行文件,在自毁删除”-完美源码

    成功

    Python自删除代码“先删除执行文件,在自毁删除”-完美源码

     

    END
    如本资源侵犯了您的权益,请联系投诉邮箱admin@wmphp.com进行举报!我们将在收到邮件的1个小时内处理完毕。 本站仅为平台,发布的资源均为用户投稿或转载!所有资源仅供参考学习使用,请在下载后的24小时内删除,禁止商用! Wmphp.com(完美源码)助力正版,如您有自己的原创产品,可以联系客服投稿,代理出售! Wmphp.com(完美源码)客服QQ:136882447 Wmphp.com(完美源码)商务电话(仅对企业客户/个人用户):15120086569 (微信同步) 请注意:本站不提供任何免费的技术咨询服务,为了节约时间,下载前 请确认自己会技术
    完美源码 » Python自删除代码“先删除执行文件,在自毁删除”
    3442+

    本站勉强运行

    3605+

    用户总数

    688+

    资源总数

    0+

    今日更新

    2024-2-27

    最后更新时间