vivienluo 发表于 2013-6-26 21:06:37

教你如何在skill中使用shell命令创建压缩文件(winrar)

前提,电脑必须安装有winrar,如果安装在C盘,那么请到C:/Program Files/WinRAR文件夹找到winrar.exe文件,然后存放于任何不带空格的文件目录下。
建议存放于C:/WINDOWS/system32目录。
下面对shell中使用winrar命令做一个介绍。以下是其基本格式:

shell("winrar路径 执行命令 压缩文件名 需要压缩的文件或文件夹")

1.winrar路径绝对路径
    假如放于“e:/winrar.exe”,那么该参数就为e:/winrar。假如已经存放于C:/WINDOWS/system32目录,那么该参数可直接使用winrar

2.执行命令
    可指定以下命令
    a 添加文件到压缩文件
    -k 锁定压缩文件
    -s 产生固体存档,这样可以增大压缩比
    -r 包括子目录
    -m* 设置压缩比
注:m*请参考以下参数
    -m0   存储      添加到压缩文件时不压缩文件。
    -m1   最快      使用最快方式(低压缩)
    -m2   较快      使用快速压缩方式
    -m3   标准      使用标准(默认)压缩方式
    -m4   较好      使用较好压缩方式(较好压缩,但是慢)
    -m5   最好      使用最大压缩方式(最好的压缩,但是最慢)
如果只压缩单个文件,该参数直接指定为"a"即可,如果压缩某个文件夹下所有文件,且该文件夹下包含有子目录,并需要一起压缩,那么参数指定为"a -r"

3.压缩包文件的文件名
   可指定绝对路径。
   比如现在想压缩某个文件,并在相同目录下产生压缩包,压缩包名字为1.zip,那么该参数直接为"1.zip"。如果指定压缩包存放在d盘下,那么该参数就指定为"d:/1.zip"

4.需要压缩的文件或文件夹。
      比如压缩当前目录下所有文件,那么该参数指定为"./",如果压缩当前目录下的1.brd文件,那么就指定"1.brd"。如果需要压缩所有扩展名为brd的文件,那么就指定该参数为"*.brd"



下面举几个简单的例子说明如何使用(默认winrar已存放于system32目录中):

1.直接压缩当前brd文件,压缩包名字为2.zip,可输入以下命令:shell("winrar.exe a 2.zip brdName.brd")2.压缩当前目录下所有文件并包含子目录文件夹:shell("winrar.exe a 2.zip ./")3.以最快方式压缩当前目录下所有"il"文件,并将压缩包名字命为为"il.zip",存放在d盘根目录下:shell("winrar.exe a -m1 d:/il.zip ./*.il")4.直接压缩当前打开的brd文件并存于同一目录,brd文件名命名压缩包文件名。brd_Name = strcat(axlCurrentDesign() ".brd")
zip_Name = strcat(axlCurrentDesign() ".zip")
winrar_brdzip = strcat("winrar.exe a " zip_Name " " brd_Name)
shell(winrar_brdzip)更多命令可下载附件查看。


liuwenbin 发表于 2019-4-1 16:46:05

defir 发表于 2014-12-20 23:20
压缩不成功,闪下CMD界面后,没有生成压缩包。求解答!!

您好,我也遇到了同样的问题,请问您那边有解决办法了吗?

chuankay 发表于 2013-6-27 21:56:11

好贴怎么没人顶呢。

xieh_17 发表于 2013-6-28 10:51:39

果然是好贴啊,正好用得上,顶。。。。。

sisic 发表于 2014-1-1 00:02:03

謝謝辛苦的 教學喔很實用

neo.dong 发表于 2014-2-12 12:00:15

好贴,不顶不行

comwise 发表于 2014-2-28 22:25:33

使用7z压缩效果更好 特别是处理PCB生产文件时优势明显

kingsogo 发表于 2014-6-24 14:44:14

谢谢楼主分享

chuchiwolong 发表于 2014-6-30 15:57:54

顶一个,谢楼主分享!

owencai 发表于 2014-7-12 14:47:30

好东西!谢谢分享

這侽孓譙悴丶 发表于 2014-9-21 18:27:53

axlCmdRegister( "cam zip" 'camzip?cmdType "general")
defun( camzip ()
brd_Name = strcat(axlCurrentDesign() ".brd")
zip_Name = strcat(axlCurrentDesign() ".zip")
winrar_brdzip = strcat("winrar.exe a " zip_Name " " brdName)
shell(winrar_brdzip)
);end-defun camzip

使用这个代码压缩不了啊····执行cam zip后命令栏提示:E- *Error* eval: unbound variable - brdName
页: [1] 2 3 4
查看完整版本: 教你如何在skill中使用shell命令创建压缩文件(winrar)