找回密码
 加入
搜索
查看: 3535|回复: 0

[AU3基础] 求助,DOS回显可以进度条不行请帮助

[复制链接]
发表于 2012-9-9 21:26:55 | 显示全部楼层 |阅读模式
本帖最后由 ndyzx 于 2012-9-9 21:29 编辑

比如运行一个文件BAT文件(仅举例)内容如下:
@echo off 
color 0a
title windows7系统垃圾清理---
echo.★☆   正在为您清理系统垃圾文件,请稍等......   ☆★
echo 清理垃圾文件,速度由电脑文件大小而定。在没看到结尾信息时 
echo 请勿关闭本窗口。 
echo 正在清除系统垃圾文件,请稍后...... 
echo 删除补丁备份目录 
RD %windir%\$hf_mig$ /Q /S 
echo 把补丁卸载文件夹的名字保存成2950800.txt 
dir %windir%\$NtUninstall* /a:d /b >%windir%\2950800.txt 
echo 从2950800.txt中读取文件夹列表并且删除文件夹 
for /f %%i in (%windir%\2950800.txt) do rd %windir%\%%i /s /q 
echo 删除2950800.txt 
del %windir%\2950800.txt /f /q 
echo 删除补丁安装记录内容(下面的del /f /s /q %systemdrive%\*.log已经包含删除此类文件) 
del %windir%\KB*.log /f /q 
echo 删除系统盘目录下临时文件 
del /f /s /q %systemdrive%\*.tmp 
echo 删除系统盘目录下临时文件 
del /f /s /q %systemdrive%\*._mp 
echo 删除系统盘目录下日志文件 
del /f /s /q %systemdrive%\*.log 
echo 删除系统盘目录下GID文件(属于临时文件,具体作用不详) 
del /f /s /q %systemdrive%\*.gid 
echo 删除系统目录下scandisk(磁盘扫描)留下的无用文件 
del /f /s /q %systemdrive%\*.chk 
echo 删除系统目录下old文件 
del /f /s /q %systemdrive%\*.old 
echo 删除回收站的无用文件 
del /f /s /q %systemdrive%\recycled\*.* 
echo 删除系统目录下备份文件 
del /f /s /q %windir%\*.bak 
echo 删除应用程序临时文件 
del /f /s /q %windir%\prefetch\*.* 
echo 删除系统维护等操作产生的临时文件 
rd /s /q %windir%\temp & md %windir%\temp 
echo 删除当前用户的COOKIE(IE) 
del /f /q %userprofile%\cookies\*.* 
echo 删除internet临时文件 
del /f /s /q "%userprofile%\local settings\temporary internet files\*.*" 
echo 删除当前用户日常操作临时文件 
del /f /s /q "%userprofile%\local settings\temp\*.*" 
echo 删除访问记录(开始菜单中的文档里面的东西) 
del /f /s /q "%userprofile%\recent\*.*" 
echo 
echo ★☆ 恭喜您!清理全部完成!☆★
echo.
AU3脚本如下:
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>
#Region ### START Koda GUI section ### Form=

$Form = GUICreate("进度条加回显", 427, 396)
$Progress = GUICtrlCreateProgress(6, 72, 425, 25,0x01)
$Label6_3 = GUICtrlCreateLabel("  ", 135, 40, 290, 17)
$Edit1 = GUICtrlCreateEdit("", 8, 152, 425, 193,BitOR(0x00200000,0x0800))
GUISetState(@SW_SHOW)
GUICtrlSetData($Label6_3,"进度条...")
        GUICtrlSetData($Edit1,"回显...",' ')
        $ImageX = Run('qll.bat',"", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
        While 1
                $line = StdoutRead($ImageX)
                If @error Then ExitLoop
                Dim $ProgressA,$ProgressB,$ImageXProgress
                If StringStripWS($line,8)<>"" Then
                        GUICtrlSetData($Edit1,@CRLF&$line,' ')
                        If StringInStr(StringStripCR($line),"Applying progress") Then
                                $ProgressA=StringSplit(StringStripCR($line),"]")
                                $ProgressB=StringSplit($ProgressA[1],"[")
                                $ImageXProgress=StringStripCR(StringStripWS($ProgressB[2],8))
                        EndIf
                        GUICtrlSetData($Label6_3,"正在执行..."& $ImageXProgress)
                        GUICtrlSetData($Progress,StringTrimRight($ImageXProgress,1))
                EndIf
        
        WEnd
运行结果可以实时回显,但进度条没反应。请多指教。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-22 13:03 , Processed in 0.074175 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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