【发布时间】:2014-11-04 20:28:54
【问题描述】:
我需要一个脚本来将包括子文件夹在内的目录的内容备份到单个存档文件中。我想按月计划运行此脚本(将使用任务计划程序),因此脚本每 30 天压缩文件夹的内容并创建一个以月份为文件名的新存档文件,然后删除文件/子文件夹。
我把我在网上找到的代码组合在一起,这就是产品。代码按要求运行,只是不确定逻辑是否存在。
for /f %%x in ('wmic path win32_localtime get /format:list ^| findstr "="') do set %%x
IF %month%==1 (
SET mth=Jan
)
IF %month%==2 (
SET mth=Feb
)
IF %month%==3 (
SET mth=Mar
)
IF %month%==4 (
SET mth=Apr
)
IF %month%==5 (
SET mth=May
)
IF %month%==6 (
SET mth=Jun
)
IF %month%==7 (
SET mth=Jul
)
IF %month%==8 (
SET mth=Aug
)
IF %month%==9 (
SET mth=Sep
)
IF %month%==10 (
SET mth=Oct
)
IF %month%==11 (
SET mth=Nov
)
IF %month%==12 (
SET mth=Dec
)
for /d %%X in (*) do "c:\Program Files\7-Zip\7z.exe" a "%mth%-%Year%.zip" "%%X\"
IF EXIST %mth%-%Year%.zip (
FOR /D %%p IN ("*") DO rmdir "%%p" /s /q
) ELSE (
echo NO
)
如果有人可以帮助我优化或改进此代码,我将不胜感激。
【问题讨论】:
-
你到底使用什么代码?到目前为止,您尝试了哪些方法来达到您想要的结果?
-
我建议您重新阅读线程并查看 7z 的命令行选项(已接受答案中的第二个解决方案)以将多个文件压缩到一个存档中,可以使用 windows 任务调度程序来完成调度。这也不是应该在 SO 上提出的问题类型,因为您没有任何代码,只是寻求一般建议
-
@SBH - 代码必须是 VB、powershell 或某种形式的 windows Batch.. 我还没有找到任何适合我需要的东西。到目前为止我发现的一切都很接近,但不是我需要的。
-
对不起,但 SO 不能那样工作。请向我们展示您迄今为止所做的尝试,以及您需要帮助解决的具体问题。
-
我尝试使用的代码是
for /d %%X in (*) do "c:\Program Files\7-Zip\7z.exe" a "%%X.zip" "%%X\"问题是上面的代码为目录中的每个子文件夹创建了一个单独的压缩文件。我只需要创建 1 个包含所有子文件夹的 zip 文件。
标签: batch-file 7zip winrar