首页 > 解决方案 > 如何使用批处理文件将多个文件夹压缩为一个

问题描述

我有一个批处理文件来压缩一个文件夹并用日期和时间重命名它,它运行良好。

现在我需要同一个文件将多个文件夹压缩成一个压缩 rar 文件。

这是我的批次:

@echo off
echo STARTING BACKUP...
echo %date% %time%
echo+

:: variables
set src=D:\test
set dest=D:\Backups

set filename=%DATE:/=-%_%TIME::=-%
set filename=%filename: =%
Set Rar=%ProgramFiles%\WinRar\WinRAR.exe

"%Rar%" a -m5 -ed -pEltyar -r %dest%\%filename%.rar "%src%"

echo Backup Completed!
@pause

标签: batch-filecompressionrar

解决方案


你可以尝试这样的事情:

@echo off
Title Compress multi-folders in one with Winrar
Mode 70,5 & color 0A
echo STARTING BACKUP...
Call :GetFileNameWithDateTime
echo %filename%

:: variables
set src="D:\test1","D:\test2"
set dest=D:\Backups

If not exist "%dest%" MD "%dest%"

Set Rar=%ProgramFiles%\WinRar\RAR.exe

for /f "delims=," %%i in ('echo %src%') do (
    "%Rar%" a -inul -m5 -ed -hpEltyar -r "%dest%\%filename%.rar" "%%~i"
)
If "%errorlevel%" EQU "0" (
    echo(
    echo Backup Completed Successfully !
) Else (
    echo( & color 0C
    echo There was an error occured !
)
Timeout /T 10 /nobreak>nul & exit

::*********************************************************************************************
:GetFileNameWithDateTime
for /f "skip=1" %%x in ('wmic os get localdatetime') do if not defined MyDate set "MyDate=%%x"
set "filename=%MyDate:~0,4%-%MyDate:~4,2%-%MyDate:~6,2%-%MyDate:~8,2%-%MyDate:~10,2%"
exit /b
::*********************************************************************************************

推荐阅读