吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4589|回复: 34
收起左侧

[原创工具] 上传网盘分卷压缩小工具(基于Winrar)

  [复制链接]
blfiag 发表于 2022-6-14 22:30
; 6月以来为许多坛友提供了一些科社的图书,以下脚本是在多次上传过程中逐步完善的
; 可方便应助者分卷上传。
; 应助临近尾声,希望这个小工具能帮助更多的人

;直接另存为 自动分卷压缩.au3,运行即可
#include <File.au3>
#include <Array.au3>

$iniFile=@ScriptDir & "自动分卷压缩.ini"
$vNum=IniRead($iniFile, "Config", "vNum", "95m") ; lanzou <100m
$myExt=IniRead($iniFile, "Config", "FileExt", "*.pdf") ;默认支持pdf
$rarDirect=Number(IniRead($iniFile, "Config", "RarDirect", 105))

$path=@ScriptDir
$a=_FileListToArrayRec($path & "\", $myExt, 1, 0, 0, 0)
If Not @Error Then
        For $i=1 to $a[0]
            $size=FileGetSize($a[$i])
                If $size>100*1048576 And $size<=$rarDirect*1048576 Then ;直接rar压缩。 不一定准确,可以根据情况调整
                        $controls="-s -m1 -ep"
                         CompressWithCmd($a[$i], 'rar', $path,$controls, 1)
                ElseIf $size>$rarDirect*1048576 Then ;分卷
                     $controls="-s -m0 -ep -afzip -v" & $vNum
                         CompressWithCmd($a[$i], 'zip', $path,$controls, 1)
                ENdif
    Next
EndIf


$a=_FileListToArrayRec($path & "\", "*.z*|*.zip", 1, 0, 0, 0)
If Not @error Then
     For $i=1 to $a[0]
                $controls='-s -m1 -ep -afzip'
                CompressWithCmd($a[$i], 'zip', $path, $controls, 0)
     Next
EndIf

Msgbox(8192, "Info", "Done!", 2)


Func CompressWithCmd($file, $poststr, $path, $control, $flag=1)
        $WinRarSoft=IniRead($iniFile, "Config", "WinRar", "C:\Program Files\WinRAR\winrar.exe") ; lanzou <100m
        $DeleteSource=Number(IniRead($iniFile, "Config", "DeleteSource", 0)) ;是否删除已压缩的源文件
        If $flag==1 Then
                $file2=StringReplace($file, ".pdf", "")
                $newfile=$path & "\" & $file2 & "." & $poststr
                $mycmd='"' & $WinRarSoft & '"' & ' a "' & $newfile & '" ' & $control & ' "' & $path & '\' & $a[$i] & '"'
                ConsoleWrite($mycmd &  @LF)
                RunWait($mycmd , $path, @SW_HIDE)
                If $DeleteSource=0 Then
                   FileDelete($path  & "\" & $file)              ;不需要保留选此
                Else
                        If Not FileExists(@ScriptDir & "\本地保留") Then DirCreate( @ScriptDir & "\本地保留")
                        FileMove($file, @ScriptDir & "\本地保留" , 1 ) ;需要保留的话
        EndIf

        Else ; z01压缩
                $file2=StringReplace($file, ".z", "-")
                $newfile=$path & "\" & $file2 & "." & $poststr
                $mycmd='"' & $WinRarSoft & '"' & ' a "' & $newfile & '" ' & $control & ' "' & $path & '\' & $a[$i] & '"'
                RunWait($mycmd , $path, @SW_HIDE)
                FileDelete($path  & "\" & $file)
        EndIf
EndFunc


以下压缩包内包括原始脚本与编辑后小程序
https://wwm.lanzout.com/iGsja06f45ri

运行效果如下:

运行效果

运行效果

免费评分

参与人数 6吾爱币 +11 热心值 +6 收起 理由
Hmily + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
zxinyun + 1 + 1 用心讨论,共获提升!
laonanhai945 + 1 + 1 谢谢@Thanks!
jk_wang + 1 + 1 谢谢@Thanks!
xb0wxh + 1 + 1 谢谢@Thanks!
ysjd22 + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

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

 楼主| blfiag 发表于 2022-6-15 11:02
jamesmeng 发表于 2022-6-15 08:53
一个命令行就解决的问题。
rar a -v15m xxx.rar xxx.pdf

一个命令需要输入***,主要就是为了解决懒的问题。加上判断在100M附近的文件直接不分卷压缩为恰好小于100的文件
 楼主| blfiag 发表于 2022-6-15 11:01
63298368 发表于 2022-6-15 08:58
win7不能运行。。。。。。。。。。。。

下载autoit3 重新编译吧,按道理应该可以直接用
dmhsds 发表于 2022-6-14 22:35
netpeng 发表于 2022-6-14 22:44
支持原创。收藏了,很实用的小工具。
头像被屏蔽
xiadongming 发表于 2022-6-14 22:52
提示: 作者被禁止或删除 内容自动屏蔽
官本三竹 发表于 2022-6-14 23:04
很不错的小东西
yoyomi 发表于 2022-6-15 00:07
很实用的小工具,谢谢分享
adahua 发表于 2022-6-15 00:12
谢谢,依女
CXC303 发表于 2022-6-15 00:27
感谢分享
头像被屏蔽
xkh5823 发表于 2022-6-15 07:02
提示: 作者被禁止或删除 内容自动屏蔽
ysjd22 发表于 2022-6-15 07:04
这个太好了。很实用的小工具
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-24 00:50

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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