如何用命令行压缩指定的文件夹

你能告诉我如何将指定的文件压缩到相同的Zip文件。 让我告诉我的文件夹是如何填充的:

  • 任务调度程序对我的数据库进行备份并每天将其保存到文件中。 它每天创build4个数据库备份,这意味着每天将有4个以上的文件。 因此,我需要将新创build的备份压缩到同一个zip文件(当然,它与前一天的压缩文件不同,将为新创build的备份文件创build该压缩文件),我需要自动完成。 那么我知道如何使它自动。 我可以使用Windows任务调度器来自动化事情。

谢谢。

Solutions Collecting From Web of "如何用命令行压缩指定的文件夹"

你可以使用DotNetZip来完成它 – 它最初是作为程序员使用的库来生成的,但是构建在库上的示例应用程序本身已经变得非常有用。

其中一个“样本”称为zipit.exe – 一个控制台工具。 指定一个不存在的zip文件来创建一个新文件,或指定一个现有的zip文件来更新它。

zipit.exe ZipArchive.zip c:\data\folder1 

您可以指定一个或多个文件名,目录或描述要包含哪些文件的逻辑表达式。 对于表达式:

  • name = *.jpg
    任何.jpg文件。

  • mtime > 07/01/2009
    任何在2009年7月1日午夜之后修改时间的文件。创建时间和访问时间也有ctime和atime。

  • ctime > 07/01/2009:07:53:00
    2009年7月1日上午7:53之后创建任何文件。

  • size > 320mb
    任何大小超过320MB的文件。 您也可以使用kbgb 。 或者以字节为单位忽略大小的字符。 你可以使用<或=作为操作。

  • attr != H
    任何没有设置隐藏属性的文件。 其他属性包括S = system,R = Readonly,A = Archive。 当然,你也可以测试属性是否为ON(使用=而不是!=)。

  • attr != H and size > 320mb
    包括满足这两个条件的文件。 你也可以使用OR作为连接。 使用parens来分组复杂的表达式。

  • name = *.jpg or name = *.gif
    包括满足一个或其他条件的文件。

  • (name = *.jpg) or (name = *.gif)
    同上。

  • (mtime >= 07/01/2009) and (mtime < 07/02/2009)
    任何7月1日修改的文件。 从午夜到午夜。

  • (name = *.jpg) AND (mtime >= 07/01/2009) and (mtime < 07/02/2009)
    任何在7月1日修改的.jpg文件。

  • (name = *.jpg) and (size >= 100kb) and (mtime >= 07/01/2009) and (mtime < 07/02/2009)
    任何.jpg文件,大小为100kb或更大,在7月1日修改。

使用zipit.exe工具上的其他选项,您还可以:

  • 指定是否要遍历重新分析点(如符号链接或连接点,例如“我的音乐”)。
  • 递归目录或不(默认不是)
  • 使用AES或“常规”zip加密对邮件进行加密
  • 指定一个段的大小来产生一个跨越的或分段的zip文件。
  • 产生一个自解压档案

例子:

zipit.exe Archive.zip -D c:\project1 -r+ "(name = *.xlsx) and (mtime >= 07/01/2009) and (mtime < 07/31/2009)"

  • 生成一个文件Archive.zip,其中包含c:\ project1目录层次结构中所有在7月份修改的.xslx文件。

zipit.exe Unpack.exe -sfx w -D project2 -r+ "(name = *.pdf) and (size > 100kb)"

  • 生成一个名为Unpack.exe的自解压缩GUI exe文件,其中包含project2目录层次结构中大于100k大小的所有.pdf文件。

DotNetZip是免费的。

所有这些功能都可以在库的.NET接口中使用。 还有一个GUI工具。

我用一个命令行使用开源程序7Zip :

 "C:\Program Files\7-Zip\7z.exe" a My.zip MyFileOrFolder 

如果您使用的是NTFS分区,它也可以解决您的问题,让Windows自动压缩备份文件所在的文件夹(右键单击文件夹,选择属性,高级,然后单击压缩内容以保护数据)。

我放弃了WinZip,转而使用7-Zip,因为它快速,免费,高效,可用于Windows和Linux。

如果您是WinZip粉丝,请查看WinZip命令行支持附件: http : //winzip.com/prodpagecl.htm

您可以在Windows命令行允许的情况下存档尽可能多的文件或目录:

 wzzip archive.zip dir1 dir2 dir3 ...