我从 7zip 下载了他们的命令行工具 7za.exe,并且我必须遵循脚本:
echo off
cls
set zip ="C:\7za.exe"
set filename="%date%.backup.zip"
set pathtobackup="C:\MyDocs"
%zip% -t7z %filename% %pathtobackup%\*.doc
我的目的是备份 MyDocs 文件夹中的所有文档文件(包括子文件夹),并将它们放在一个有日期的 zip 文件中。之后,我将使用 robocopy 将此文件移动到我的服务器,但目前我在压缩文件时遇到了一些问题。
有人知道吗?我也可以给文件附加密码吗?
答案1
使用语法
7z a -tzip archive.zip -r src\*.cpp src\*.h
所以对于你来说,应该是
7z a -t7z %filename% -r %pathtobackup%\*.doc
来源:http://sevenzip.sourceforge.jp/chm/cmdline/switches/recurse.htm
答案2
安装 7z 后,您可以使用此工作示例和删除脚本来删除超过 7 天的文件。此脚本的作用是将文件从给定的“输入”文件夹压缩到“输出”文件夹。要压缩文件夹,您必须添加 /d;要压缩文件夹内的所有文件,只需修改最后一个“%%X”。
REM This is a batch script to zip files in folder or add /d to zip folders.
REM This script is using 7z to zip files, installation is required - "[http://www.7-zip.org/a/7z938-x64.msi][1]"
REM Remember to point 'do' to 7z installed path 7z.exe
SET input1=D:\Backup\SampleFolder
SET input2=D:\Backup\SampleFolder2
SET output1=C:\ZipBackups\SampleFolder
SET output2=C:\ZipBackups\SampleFolder2
CD /d %input1%
for %%X in (*) do "C:\Program Files\7-Zip\7z.exe" a "%output1%\%%X.zip" "%%X"
FORFILES /P "%input1%" /M *.* /D -8 /C "cmd /c del @file"
CD /d %input2%
for %%X in (*) do "C:\Program Files\7-Zip\7z.exe" a "%output2%\%%X.zip" "%%X"
FORFILES /P "%input2%" /M *.* /D -8 /C "cmd /c del @file"
答案3
我找到了一个简单的解决方案。假设您有多个子文件夹需要压缩到一个文件夹中。在这种情况下,1. 下载并安装 7zip 软件。然后将 7z.exe 复制到您想要压缩子文件夹的特定文件夹中。
在记事本中,复制并粘贴以下内容并保存为.bat 文件。:
cd "your_Folder_path" for /d %%f in (*) do (7z a -t7z %%f.7z "your_Folder_path\%%f")
双击运行该文件。
如果您想删除原始文件夹,请在右括号前添加以下内容:
rd /s /q "your_Folder_path\%%f"
答案4
set hour=%time:~0,2%
if "%hour:~0,1%" == " " set hour=0%hour:~1,1%
echo hour=%hour%
set min=%time:~3,2%
if "%min:~0,1%" == " " set min=0%min:~1,1%
echo min=%min%
set secs=%time:~6,2%
if "%secs:~0,1%" == " " set secs=0%secs:~1,1%
echo secs=%secs%
set year=%date:~-4%
echo year=%year%
set month=%date:~3,2%
if "%month:~0,1%" == " " set month=0%month:~1,1%
echo month=%month%
set day=%date:~0,2%
if "%day:~0,1%" == " " set day=0%day:~1,1%
echo day=%day%
set datetimef=%day%_%month%_%year%___%hour%_%min%_%secs%
echo datetimef=%datetimef%
path %path%;"C:\Program Files\7-Zip"