我需要运行一个脚本来压缩目录结构中2级文件夹中的所有文件夹。我希望脚本压缩日志文件夹中的所有文件夹,然后删除原始文件夹,从而节省空间。为了说明我希望压缩的文件夹,请参见以下内容:
驱动器位置->机器名称->日志类型-> folders_i_want_to_compress
在文件夹2中,有日期格式为yyyymmdd的文件夹,我希望将这些文件夹压缩为zip文件。
我无法确定如何创建脚本来执行此操作,但是在这里确实找到了类似的脚本:7-Zip压缩文件夹中的文件,然后删除文件
...看起来像这样:
REM Usage: ZipFilesRecursively.bat "C:\My Files"
for /R "%~f1" %%F in (*) do (
7z a -mx9 "%%~dpnxF.7z" "%%F"
if exist "%%~dpnxF.7z" del "%%F"
)
但这仅适用于文件。尽管我相信它的开始将用于/ D开关而不是/ R,但我无法设法更改它以使其适用于文件夹而不是文件。
由于文件夹的路径部分基于计算机名称,因此我需要将其输入脚本中,因此我计划使用另一个批处理文件中的调用来运行压缩/删除脚本。
通话脚本将如下所示
Call zipdeletetest4 machinename1
Call zipdeletetest4 machinename2
Call zipdeletetest4 machinename3
Call zipdeletetest4 machinename4
有人能帮忙吗?
我最终去了
REM compress folders to zips
for /d %%x in ("C:\Logs\*.*") do start "C:\Program Files (x86)\7-Zip\7z.exe" /b /low /wait "C:\Program Files (x86)\7-Zip\7z.exe" a -tzip "%%x.zip" "%%x\"
REM delete the original folders used to create zips
for /d %%F in ("C:\Logs\*") do rd /s /q "%%F"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句