Autohotkey 中文论坛

完整版: 如何压缩一个文件夹
你目前正在浏览的是简化版. 请点击这里浏览完整版
我想写一个AHK代码去压缩一个文件夹,比如D:\paper
该怎么写代码呢??
高手指教,谢谢:)

[ 本帖最后由 zhunan2007 于 2009-1-15 13:07 编辑 ]
你这压缩是指啥?是NTFS的数据压缩功能,还是把文件夹打成一个包(比如zip, rar)?
用7z压缩很省空间,7z的a命令是压缩 -mx9代表压缩程度最高
7zG.exe a "目标文件.7z" "%源文件%" -mx9


#Z::
Files := % SELECT()
Loop, parse, Files, `n, `r
{
IfExist, %A_LoopField%
SplitPath, A_LoopField, , dir, , name
RunWait, D:\Soft\7-Zip\7zG.exe a "%dir%\%name%.7z" "%A_LoopField%" -mx9
TrayTip, 正在压缩第%A_Index%个文件……, %A_LoopField% 至`n【%dir%\%name%.7z】
}
TrayTip
return

SELECT(Delay=0.5)
{
ClipTemp := ClipboardAll
Clipboard :=
Send, ^c
ClipWait, Delay
SELECT := Clipboard
Clipboard := ClipTemp
ClipTemp :=
return SELECT
}
7z有命令行的程序,可到其官网下载
文件名为7za.exe

要压缩为其他格式,可找相应命令行工具,像zip,tar,gz,bzip2等
我是指压缩成一个rar的压缩包,压缩程序有,代码不会写
感谢三楼的ashimoi,在你的提示下问题已经解决。:lol
大家都这么热情,真感动。
希望大家一起交流共同进步!!
在楼上的提示下做了以下简化:
fileselectfolder,file,D:\;首先选择自己所要压缩文件夹的目录
splitpath,file,name,dir;将路径和文件夹名字分开
RunWait, C:\Program Files\WinRAR\WinRAR.exe a "%dir%\%name%.rar" "%file%";
说明:
C:\Program Files\WinRAR\WinRAR.exe 是你的压缩程序的完整路径;

"%dir%\%name%.rar"是你的目标文件的完整路径;

"%file%";是你的源文件完整路径运行OK
学习了···
批处理中的%cd%,在it中怎么表示
参考网址