请教 调用winrar打包当前目录所有文件为rar问题?
本帖最后由 qddoit 于 2009-6-1 18:42 编辑#AutoIt3Wrapper_icon=i.ico
;可自动添加zs.txt注释文件
$path = @ScriptDir
$count=0
$search = FileFindFirstFile($path & "\*.*")
$tempath = @TempDir
FileInstall("Rar.exe", $tempath & "\Rar.exe");压解文件
FileInstall("default.sfx", $tempath & "\default.sfx");压解文件
While 1
$file = FileFindNextFile($search)
If @error Then ExitLoop
if $file<>@ScriptName and $file<>"zs.txt" Then
$count=1+$count
;~ FileCopy($file, @FavoritesDir & "\", 1)
$result = StringTrimright($file, 4)
;~ MsgBox(0, "String without leftmost 3 characters is:", $result)
;~ RunWait("C:\Program Files\WinRAR\winrar.exe a -ep "&$result&".rar "&@ScriptDir&"\"&$file&" -ibck -y -m0 -zzs.txt")
;~ RunWait(@ComSpec & ' /c @color a && '&$tempath&'\rar.exe a -r -ac -k -m5 -s -t '&$file&' -c -zzs.txt', @ScriptDir, @SW_SHOW)
FileDelete ( @ScriptDir&"\back.lst" )
FileWriteLine( @ScriptDir & "\back.lst",@ScriptDir & "\" & $file)
MsgBox(0, " Tips : ", $file,1)
;~ "C:\Program Files\WinRAR\WinRAR.exe" a -ep2 -ibck -zd:\Zs.txt d:\123 @d:back.lst
RunWait("C:\Program Files\WinRAR\winrar.exe a -ep2 -ibck -m0 -zzs.txt "&@ScriptDir&"\"&$result&" "&@ScriptDir&"\back.lst")
sleep("1000")
;~ TrayTip( "RAR批量打包加注释程序 提示您~", "正在打包第"&$count&"个",3)
;~ Sleep(100)
EndIf
WEnd
;~ While 1
;~ TrayTip( "RAR批量打包加注释程序 提示您~", "共打包"&$count&"个",3)
;~ sleep(30000)
;~ WEnd
本人菜鸟。。。初学。。想用autoit自动打包指定目录的文件。
现在的问题是有的文件名称中有空格的 就不行了,winrar命令行把空格拆分了
请高手赐教~:face (27): 有空格的路径用引号
或者用FileGetShortName 函数将长路径变成短路径后再试! RunWait("C:\Program Files\WinRAR\winrar.exe a -ep2 -ibck -m0 -zzs.txt "&@ScriptDir&"\"&$result&" "&@ScriptDir&"\back.lst")
"&@ScriptDir&"\"&$result&" 这里再加引号会出错啊
我想压成还保持源文件名称的rar RunWait('C:\Program Files\WinRAR\winrar.exe a -ep2 -ibck -m0 -zzs.txt "' & @ScriptDir & '\' & $result & '" "' & @ScriptDir & '\back.lst"') 这样的话,打包的只是back.lst了,不是列表的文件了
:face (20): RunWait('C:\Program Files\WinRAR\winrar.exe a -ep2 -ibck -m0 -zzs.txt "' & @ScriptDir & '\' & $result & '" @"' & @ScriptDir & '\back.lst"')
WinRAR <命令> -<开关1> -<开关N> <压缩文件 > <文件...> <@列表文件...> <解压路径\> sensel 的方法可行!! 还是不好用哦,我再研究研究 关于空格路径问题给个思路:
StringIsSpace 检查某个字符串是否仅含有"空白符"
StringReplace 替换字符串中的指定子串,将有空白符的替换为'_'
filemove 重命名文件名
然后再压缩文件
这样就可以避免路径问题了,不过代价就是无法做到同源文件同名,自己斟酌取舍吧
找到更好方法请分享 调用winrar打包当前目录所有文件为rar
页:
[1]