7-Zip:从子目录创建一个 zip 文件,其名称与子目录本身相同

7-Zip:从子目录创建一个 zip 文件,其名称与子目录本身相同

我有一个特殊情况,需要以下文件夹结构(Windows)

X:\LOGS\PRIMARY\YEARMONTHDAY

例如,

X:\LOGS\HS\20121010

每天早上都会创建文件夹。

本质上,我想压缩日期子目录的内容并将其放在该目录中。这应该使用 7z 还是使用“FORFILES”来完成?

答案1

如果我理解正确的话,您需要获取以 YYYYMMDD 格式创建的特定文件夹并压缩其内容。生成的 zip 文件也需要放在此文件夹中。

在最基本的层面上,你可以用下面的命令来实现这一点

"c:\Program Files\7-Zip\7z.exe" a x:\Logs\HS\20121010\20121010.zip X:\Logs\HS\20121010\*

笔记:7-zip必须安装才能使用上述命令

使用上述命令,每次您想要压缩新的日期文件夹时,都必须手动填写 YYYYMMDD。

可以更进一步,您可以修改命令以使用当前的 YYYYMMDD 作为今天的日期。关键是使用 DOS 中的 %date% 变量。您可以通过键入阅读有关此变量的更多信息set /?。要将日期格式化为 YYYYMMDD,我们需要获取变量的子字符串,%date%如下所示:

echo %date:~10,4%%date:~4,2%%date:~7,2%

上述命令应以 YYYYMMDD 格式输出日期。

最后,我们可以将这两个命令放在一起生成一行命令,该命令将使用今天的日期(YYYMMDD 格式)压缩目录中的所有文件。

"c:\Program Files\7-Zip\7z.exe" a x:\Logs\HS\%date:~10,4%%date:~4,2%%date:~7,2%\%date:~10,4%%date:~4,2%%date:~7,2%.zip X:\Logs\HS\%date:~10,4%%date:~4,2%%date:~7,2%\*

可以通过在 Windows 中将上述命令添加为计划任务来采取另一个步骤来实现此自动化。

相关内容