как сжать несколько папок в одну с помощью командного файла - PullRequest
0 голосов
/ 03 июля 2018

У меня есть пакетный файл, чтобы сжать одну папку и переименовать ее с указанием даты и времени, и она работает хорошо.

Теперь мне нужен один и тот же файл, чтобы сжать несколько папок в один сжатый 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

1 Ответ

0 голосов
/ 03 июля 2018

Вы можете попробовать что-то вроде этого:

@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
::*********************************************************************************************
...