shadanyige 发表于 2009-6-20 17:07:11

关于变量和宏等参数在命令里的表达形式

本人刚开始学AU3,学习过程中遇到了难点,我用批处理做的东西用AU3来做,却没达到效果。
比如清理系统垃圾,以下是我的代码。
dim $lj,$i,$dd
FileInstall("f:\clean","c:\windows\system32\clean.reg",1)
$lj=@WindowsDir&"\SoftwareDistribution\*.*"
$lj=@HomeDrive&"\*.tmp"
$lj=@HomeDrive&"\*._mp"
$lj=@HomeDrive&"\*.log"
$lj=@HomeDrive&"\*.gid"
$lj=@HomeDrive&"\*.chk"
$lj=@HomeDrive&"\*.old"
$lj=@HomeDrive&"\recycled\*.*"
$lj=@WindowsDir&"\*.bak"
$lj=@WindowsDir&"\prefetch\*.*"
$lj=@UserProfileDir&"\cookies\*.*"
$lj=@UserProfileDir&"\recent\*.*"
$lj=@UserProfileDir&"\Local Settings\Temporary Internet Files\*.*"
$lj=@TempDir&"\*.*"
$lj=@UserProfileDir&"\recent\*.*"
$lj=22
$lj=@WindowsDir&"\$*"
$lj=@HomeDrive&"\Driver"
$lj=@HomeDrive&"\Drivers"
$lj=@ProgramFilesDir&"\360\360Safe\hotfix"
$lj=@WindowsDir&"\temp"
$lj=@TempDir
$lj=@WindowsDir&"\temp"
ProgressOn("Progress Meter", "Increments every second")
For $i = 0 to 22
        switch $i
                case 0 to 0
        run(@comspec&" /c regedit /s c:\windows\system32\clean.reg","",@SW_HIDE)
        FileRecycleEmpty()
case 1 to 15
        FileDelete($lj)
case 16 to 21
        DirRemove($lj,1)
case 22 to 22
        DirCreate($lj[$i])
        EndSwitch
                next
ProgressSet(100 , "Done", "Complete")
sleep(1500)
ProgressOff()
运行后有些代码应该是运行不正常。
filedelete("")这个里面用系统宏设置运行没反应,
比如filedelete(@tempdir&"\*.*"),预期效果应该是清除系统变量%temp%下的所有文件。但是运行后没有清除任何文件。前辈门指点一二,小弟感激不尽。

wa18239 发表于 2009-6-21 01:44:02

本人也遇到这个问题,貌似目录属性会导致无法移除.

wa18239 发表于 2009-6-21 13:28:57

怎么没有达人来指点指点

liongodmien 发表于 2009-6-21 14:40:34

直接命令算了
rrun(@comspec & ' /c rd %tmp% / s /q')
页: [1]
查看完整版本: 关于变量和宏等参数在命令里的表达形式