零度深蓝 发表于 2012-2-8 22:32:00

如何调用rar.exe添加文件到压缩包根目录[已解决]

本帖最后由 零度深蓝 于 2012-2-9 22:55 编辑

我要压缩的文件在桌面A文件夹下,比如:A\(1.txt , 2.jpg , 3.exe)
我的目的是想把A文件夹下的3个文件添加到压缩包并以系统时间命名

以下是两种压缩后的路径显示:

1.20120208_2222.rar\Users\Administrator\Desktop\A\(1.txt , 2.jpg , 3.exe)FileInstall('Rar.exe', @TempDir & '\', 1)
$Dir = @ScriptDir & '\A'
$bak = @YEAR & @MON & @MDAY & '_' & @HOUR & @MIN & '.rar'
RunWait(@TempDir & '\rar.exe a ' & $bak & ' "' & $Dir & '"', '', 0)
FileDelete(@TempDir & '\rar.exe')

2.20120208_2222.rar\A\(1.txt , 2.jpg , 3.exe)
FileInstall('Rar.exe', @TempDir & '\', 1)
$Dir = 'A'
$bak = @YEAR & @MON & @MDAY & '_' & @HOUR & @MIN & '.rar'
RunWait(@TempDir & '\rar.exe a ' & $bak & ' "' & $Dir & '"', '', 0)
FileDelete(@TempDir & '\rar.exe')
而我需要的是压缩到20120208_2222.rar\(1.txt , 2.jpg , 3.exe),如下图所示:

我调用7z.exe可以解决上述问题,但不知道调用rar.exe怎么解决?
还有"' & $Dir & '",为什么还要加个 "" ?谢谢,帮忙解决下。



$Dir = @ScriptDir & '\A\*.*'
$Bak = @ScriptDir

;rar压缩
RunWait('rar.exe a ' & $Bak & '\RAR压缩.rar' &' '& $Dir, '', @SW_HIDE )

;7z压缩
RunWait('7z.exe a -tzip -r ' & $Bak & '\7z压缩.rar' &' '& $Dir, '', @SW_HIDE )
附件我测试用的:


谢谢关注,我自己找到了,答案在10楼,rar命令添加"-ep"

502762378 发表于 2012-2-9 07:49:48

我机器没装RAR
但查了下两者压缩文件的命令相同,一下是我7Z的压缩方式:
$7z = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\7-Zip","Path")
$Dir = 'C:\Documents and Settings\e000923\桌面\script\012.au3'
$bak = @YEAR & @MON & @MDAY & '_' & @HOUR & @MIN & '.rar'
RunWait($7z&"\7z.exe a " & $bak & " "& $Dir, '', 0)

rsdfjh 发表于 2012-2-9 13:50:40

winrar安装目录下应该有命令行说明的

cxlater 发表于 2012-2-9 14:06:33

命令行下"rar.exe /?"

2011风之叶 发表于 2012-2-9 16:53:56

不懂,来学习的

零度深蓝 发表于 2012-2-9 17:54:50

回复 2# 502762378

我调用7Z没有问题,关键是调用RAR就不行了

零度深蓝 发表于 2012-2-9 22:09:35

回复 9# 虎虎虎

谢谢关注,找到原因了;
$Dir = @ScriptDir & '\A\*.*'
$Bak = @ScriptDir

;rar压缩
RunWait('rar.exe a -ep ' & $Bak & '\RAR压缩' &' '& $Dir, '', @SW_HIDE )

;7z压缩
RunWait('7z.exe a -tzip -r ' & $Bak & '\7z压缩.rar' &' '& $Dir, '', @SW_HIDE )

虎虎虎 发表于 2012-2-9 22:23:21

这个必须收藏,备用。

xiaolong100 发表于 2012-2-15 17:48:39

没有10楼哦,我刚坐上的!

虎虎虎 发表于 2012-2-15 22:46:09

本帖最后由 虎虎虎 于 2012-2-15 23:06 编辑

每次使用都得加载临时文。麻烦,直接读取注册表的安装位置省事多了。$winrar=RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\WinRAR archiver","InstallLocation")$rarfie=$winrar&"Rar.exe"

雨林GG 发表于 2013-2-8 13:25:31

来学习的~ 看后回贴 ~

dsh850912083 发表于 2016-6-26 09:23:46

撒打发士大夫
页: [1]
查看完整版本: 如何调用rar.exe添加文件到压缩包根目录[已解决]