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


1

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

X:\LOGS\PRIMARY\YEARMONTHDAY

例如,

X:\LOGS\HS\20121010

文件夹每天早上创建。

基本上我想压缩date子目录的内容并将其放在该目录中。这应该用7z还是'FORFILES'来完成?


路径的哪一部分每天都在变化?是否总会有一个X:\ Logs \ HS \ YYYYMMDD文件夹?您是否要将YYYYMMDD文件夹并将其压缩到新文件夹X:\ LOGS \ PRIMARY \ YYYYMMDD中,其中最后一个文件夹是动态创建的?
Brett

目录每天都在X:\ LOGS \ HS *下创建。我想把新转换的日志文件放在新创建的文件夹中并将它们压缩到同一个文件夹中
Tal

Answers:


0

如果我理解正确,您想要获取以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中将上述命令添加为计划任务,可以采取一个额外步骤来自动执行此操作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.