UltraDebug

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: A C D R G Y M Z X S P
公益项目,接受捐赠
查看: 1296|回复: 0
收起左侧

[系统软件] 分卷压缩小工具(基于Winrar)

[复制链接]
ultradebug

主题

0

回帖

UD

管理员

UID
1
积分
2338
注册时间
2021-12-20
最后登录
1970-1-1
2022-6-17 12:36:35 | 显示全部楼层 |阅读模式
6月以来为许多坛友提供了一些科社的图书,以下脚本是在多次上传过程中逐步完善的
可方便应助者分卷上传。
应助临近尾声,希望这个小工具能帮助更多的人

直接另存为 自动分卷压缩.au3,运行即可
[C] 纯文本查看 复制代码
#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
SyntaxHighlighter Copyright 2004-2013 Alex Gorbatchev.
以下压缩包内包括原始脚本与编辑后小程序:

分卷压缩小工具(基于Winrar) - ultradebug_UltraDebug 自动分卷压缩脚本.zip (455.97 KB, 下载次数: 0)

运行效果如下:
分卷压缩小工具(基于Winrar) - ultradebug_UltraDebug
UltraDebug免责声明
✅以上内容均来自网友转发或原创,如存在侵权请发送到站方邮件9003554@qq.com处理。
✅The above content is forwarded or original by netizens. If there is infringement, please send the email to the destination 9003554@qq.com handle.
回复 打印

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|站点地图|UltraDebug ( 滇ICP备2022002049号-2 滇公网安备 53032102000034号)

GMT+8, 2025-6-18 19:10 , Processed in 0.029450 second(s), 11 queries , Redis On.

Powered by Discuz X3.4

© 2001-2023 Discuz! Team.

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