批处理文件,用于创建多个文件的zip并将其复制到其他位置

时间:2017-05-17 18:45:50

标签: batch-file

我想每天将重要文件备份到我的USB驱动器。 USB驱动器总是插在电脑上,所以我不需要担心驱动器号。我知道如何创建一个批处理文件,只需将它们复制并粘贴到驱动器中,但我想知道是否有办法创建一个批处理文件,生成我想要的所有文件夹的zip文件(使用winzip或winrar),然后将它们发送到驱动器。这样我就可以归档它们,而不仅仅是复制和替换它们。

谢谢。

2 个答案:

答案 0 :(得分:1)

请参阅:How can you zip or unzip from the command prompt using ONLY Windows' built-in capabilities?

Powershell可以做到这一点:

Add-Type -A System.IO.Compression.FileSystem
[IO.Compression.ZipFile]::CreateFromDirectory('C:\foo\', 'D:\foo.zip')

您可以通过调用powershell.exe将其合并到批处理文件中,如下所示:

powershell.exe -nologo -noprofile -command "& { Add-Type -A 'System.IO.Compression.FileSystem'; [IO.Compression.ZipFile]::CreateFromDirectory('C:\foo\', 'D:\foo.zip'); }"

我建议您从计划任务中运行它,这样您就不必手动启动它或担心它一直在运行,并计划偶尔断开/更换/存档驱动器本地 - 本地附加存储不是备份

答案 1 :(得分:0)

启动 WinRAR ,点击第一个菜单项帮助主题上的菜单帮助,展开帮助标签目录列表项命令行模式

  • 阅读帮助页命令行语法
  • 展开列表项命令并阅读帮助页面字母命令列表
  • 展开列表项开关并阅读帮助页按字母顺序切换列表

然后你知道我是如何在下面创建这个单一命令行的,以及所有这些开关的含义。

"%ProgramFiles%\WinRAR\WinRAR.exe" a -ac -ao -afzip -agYYYY-MM-DD_NN -cfg- -ed -ep1 -ibck -inul -m5 -r -y -- "D:\Backup Folder\DataBackup_.zip" "C:\Path To Folder With Files To Backup\"

另请参阅Simply compress 1 folder in batch with WinRAR command line?上的答案

由于-ao

WinRAR 仅添加归档属性设置的ZIP存档文件,并在因-ac将文件压缩到存档后清除归档属性。修改,重命名或移动文件时,Windows会自动设置存档属性。因此,此命令行可以避免将相同的未修改文件一次又一次地压缩到ZIP存档中。

ZIP文件以名称中的当前日期自动命名,如果在一天内多次执行此命令行,则自动递增编号。