我有一个特殊情况,需要以下文件夹结构(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 中将上述命令添加为计划任务来采取另一个步骤来实现此自动化。