batch-file - 如何使用批处理文件将多个文件夹压缩为一个
问题描述
我有一个批处理文件来压缩一个文件夹并用日期和时间重命名它,它运行良好。
现在我需要同一个文件将多个文件夹压缩成一个压缩 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
解决方案
你可以尝试这样的事情:
@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
::*********************************************************************************************
推荐阅读
- git - 在未安装 git 的情况下下载 Github 存储库
- git - 想要从生产分支刷新/复制沙箱分支
- arduino - “;”之前的预期构造函数、析构函数或类型转换 令牌
- python - 反序列化 spacy 的对象 [python]
- flutter - Flutter - 文本中的连字符处没有换行符
- python - 在完全不同的目录中导入 python 模块
- mysql - CREATE TABLE `table` AS SELECT 忽略?
- javascript - Unexpected token, expected 是什么意思?在 ReactJS 中是什么意思?
- ios - 无法使用dismiss(animated:true,completion:nil)关闭邮件作曲家,并且dismissViewControllerAnimated不会作为选项出现
- node.js - 在 create-react-app 安装期间遇到问题