找回密码
 加入
搜索
查看: 863|回复: 8

[系统综合] 用stdoutread读取7z.exe压缩文件的进度,显示为空白?求大神支招

[复制链接]
发表于 2023-5-21 12:25:08 | 显示全部楼层 |阅读模式
单独在cmd.exe里面运行能看到整个的进度,用run后就不显示,参数改为@sw_show后发现运行的窗口只有一个光标在闪烁,更改了工作目录也是一样的情况。
 楼主| 发表于 2023-5-21 12:38:04 | 显示全部楼层
                TraySetToolTip("正在创建压缩档案:" & $cArchives)
                Local $sOutput, $findPercent, $iProgPercent
                Local $iPID = Run($sCmdp, @ScriptDir, @SW_SHOW, $STDOUT_CHILD)

                ProgressOn($cTitle, "", "", -1, 1, $DLG_MOVEABLE)
                While 1
                        $sOutput = StdoutRead($iPID)
                        If @error Then ExitLoop
                        If $sOutput <> "" Then
                                $findPercent = StringInStr($sOutput, '%')
                                If $findPercent And StringInStr($sOutput, '+') Then
                                        $iProgPercent = Number(StringLeft($sOutput, $findPercent - 1))
                                        ProgressSet($iProgPercent, "", "Compressing...")
                                EndIf
                        EndIf
                WEnd
                ProgressOff()
发表于 2023-5-21 16:30:27 | 显示全部楼层
参数问题吧~ 代码不完整,没见你的调用7z命令行代码。
 楼主| 发表于 2023-5-21 16:45:33 | 显示全部楼层
7z.exe a %USERPROFILE%\Desktop\test.7z D:\test.exe -mx9 -ms=200m -mf -mhc -mhcf -m0=LZMA2 -mmt
 楼主| 发表于 2023-5-21 16:47:16 | 显示全部楼层
afan 发表于 2023-5-21 16:30
参数问题吧~ 代码不完整,没见你的调用7z命令行代码。

以上这个命令行直接运行是显示整个过程的,如果通过run调用就只显示一个光标了,不知道是什么情况?
发表于 2023-5-21 17:01:05 | 显示全部楼层
ChengXin 发表于 2023-5-21 16:47
以上这个命令行直接运行是显示整个过程的,如果通过run调用就只显示一个光标了,不知道是什么情况?

缺少bs流输出参数,添加 -bsp1 试试
 楼主| 发表于 2023-5-21 19:56:00 | 显示全部楼层
afan 发表于 2023-5-21 17:01
缺少bs流输出参数,添加 -bsp1 试试

好的,感谢大神!我试试先
 楼主| 发表于 2023-5-21 23:41:44 | 显示全部楼层
afan 发表于 2023-5-21 17:01
缺少bs流输出参数,添加 -bsp1 试试

完美解决,谢谢!
发表于 2023-5-22 08:23:47 | 显示全部楼层
7z有现成的udf为啥还要另外用7z.exe呢?建议看看udf
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-22 10:45 , Processed in 0.085897 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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