吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1254|回复: 10
收起左侧

[其他原创] 自释放7z文件打包工具

[复制链接]
androllen 发表于 2026-2-24 23:41
本帖最后由 androllen 于 2026-2-24 23:52 编辑

准备

需要提前安装7z 软件 下载地址: https://www.7-zip.org/

应用

适用于某网盘上传与下载

使用方法

压缩方法

  1. 拖拽式
    2026020106330.gif

  2. 目录式
    20260201193818.gif
    把打包的所有文件放到新建目录下,双击自释放工具.bat

解压方法

  1. 双击式:直接在当前目录下双击解压
  2. 右键式
    20260201193817.gif

部分代码

@echo off
setlocal enabledelayedexpansion

:: ============================================================================
:: 脚本名称: 智能打包为自释放7z文件
:: 功能描述:
::   1. 自动查找 7z.exe (先查PATH, 再查注册表)
::   2. 等待用户拖放文件/文件夹
::   3. 根据拖放内容智能选择打包方式
::   4. 生成带时间戳的自释放 .exe 文件
:: ============================================================================

:: --- 步骤 1: 查找 7z.exe ---
:: 定义注册表路径和要查询的值名
set "regPath=HKEY_LOCAL_MACHINE\SOFTWARE\7-Zip"
set "valueName=Path1"
set "value64Name=Path64"

set "SEVEN_ZIP_CMD="
echo [步骤 1/4] 正在查找 7z.exe...

:: 方法一: 在系统环境变量 PATH 中查找
for /f "delims=" %%i in ('where 7z.exe 2^>nul') do (
    set "SEVEN_ZIP_CMD=%%i"
    goto :found_seven_zip
)

:: 方法二: 如果 PATH 中没找到,则查询注册表
echo   - 在系统PATH中未找到,正在查询注册表...
:: 查询注册表获取Path值
for /f "skip=2 tokens=2*" %%a in ('reg query "%regPath%" /v "%valueName%" 2^>nul') do (
    set "SEVEN_ZIP_PATH=%%b"
)

:: 检查 64 位注册表路径是否成功
if defined SEVEN_ZIP_PATH (
    set "SEVEN_ZIP_CMD=!SEVEN_ZIP_PATH!\7z.exe"
    if exist "!SEVEN_ZIP_CMD!" (
        goto :found_seven_zip
    ) else (
        goto :no_found_seven_zip
    )
)

:: 方法三: 如果上一步失败,尝试 32 位应用的注册表路径 (WOW6432Node)
for /f "skip=2 tokens=2*" %%a in ('reg query "%regPath%" /v "%value64Name%" 2^>nul') do (
    set "SEVEN_ZIP_PATH=%%b"
)

:: 检查 32 位注册表路径是否成功
if defined SEVEN_ZIP_PATH (
    set "SEVEN_ZIP_CMD=!SEVEN_ZIP_PATH!\7z.exe"
    if exist "!SEVEN_ZIP_CMD!" (
        goto :found_seven_zip
    ) else (
        goto :no_found_seven_zip
    )
)

:no_found_seven_zip
:: 如果所有方法都失败,则报错退出
echo.
echo [错误] 未能找到 7z.exe。
echo 请确保 7-Zip 已正确安装,或者其安装目录已添加到系统环境变量 PATH 中。
echo.
pause
exit /b 1

:found_seven_zip
echo   - 成功找到: !SEVEN_ZIP_CMD!
echo.

:: --- 步骤 2: 等待用户拖放文件/文件夹 ---
echo [步骤 2/4] 请将一个或多个文件/文件夹拖放到此窗口,然后按 Enter:
set "DropItems=%*"

文件下载

自释放7z文件打包工具.txt (56 Bytes, 下载次数: 125)

源码下载

https://github.com/androllen/bat-toolkit

如果觉得不错,请给个热心~

免费评分

参与人数 3吾爱币 +9 热心值 +2 收起 理由
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
pyjiujiu + 1 谢谢@Thanks!
诸葛文诚 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

吃肉的小白兔 发表于 2026-2-25 09:24
能选择不同文件夹的释放路径吗?
haoge101 发表于 2026-2-25 07:44
tlzsw 发表于 2026-2-25 08:12
error3 发表于 2026-2-25 08:16
很有用的小工具。不错不错
DoctorPHD 发表于 2026-2-25 08:28
什么叫子释放
全修林 发表于 2026-2-25 09:08
要是自释放后自动立即执行就好了
daymissed 发表于 2026-2-25 09:53
谢谢分享,感觉挺方便的。
zlqhysy 发表于 2026-2-25 10:39
用脚本写的,方便快捷
宇宙无敌超级羽 发表于 2026-2-25 13:28
原来还可以这么方便,谢谢分享,提高效率
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-4-13 05:11

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表