我想每天将重要文件备份到我的USB驱动器。 USB驱动器总是插在电脑上,所以我不需要担心驱动器号。我知道如何创建一个批处理文件,只需将它们复制并粘贴到驱动器中,但我想知道是否有办法创建一个批处理文件,生成我想要的所有文件夹的zip文件(使用winzip或winrar),然后将它们发送到驱动器。这样我就可以归档它们,而不仅仅是复制和替换它们。
谢谢。
答案 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文件以名称中的当前日期自动命名,如果在一天内多次执行此命令行,则自动递增编号。