Вопрос или проблема
При использовании Winrar у нас есть возможность добавить комментарий к архиву. Я использую простой пакетный скрипт для резервного копирования папки. Можно ли добавить комментарий к rar архиву с помощью пакетного файла?
Я бы предпочел добавлять комментарии через командную строку, а не использовать внешний файл для загрузки комментариев.
Это пакетный файл.
@echo off
"C:\Program Files\WinRAR\Rar.exe" -r a -agYYYY-MM-DD-HH-MM "C:\Folder" "B:\Archive" -ep1 -r -m5
pause
Он заархивирует все в C:\Folder в B:\Archive
Вероятно, все еще проще сделать это с файлом, но вы можете просто создать его на лету. Пример может выглядеть так:
@echo off
SET /P comment=Comment:
echo %comment% > C:\Temp\message.txt
rar.exe a -zC:\Temp\message.txt "test.rar" "C:\TestFiles"
del C:\Temp\message.txt
pause
SET /P comment=Comment: кажется, требует ручного нажатия Enter, иначе команда просто ждет...
Пытаюсь решить это для вас… Я застрял.
Поэтому я сделал другое решение, которое проще и работает также хорошо, если не лучше?
@echo off
echo Winrar Incremental Wallets Backup E: > C:\Temp\winrar.message.E.txt
Запустите свою команду rar со следующим добавленным параметром: -zC:\Temp\winrar.message.E.txt
И чтобы держать все в чистоте, вы можете завершить пакетный файл с:
del /F /Q C:\Temp\winrar.message.E.txt
Это все для моего решения.
Я использую Windows 2019 и просто не могу заставить SET /P работать правильно (или я слишком глуп)*
-
Что касается SET /P и почему он у меня не работает… У меня нет идей, и если у вас есть какие-то сведения, дайте мне знать. Эта статья была очень интересной, но даже она не помогла мне (https://www.robvanderwoude.com/battech_inputvalidation_setp.php). Код, который он дал:
SETLOCAL EnableDelayedExpansion
SET /P var=”Type anything here:”
ECHO .!var!.
ECHO strip quotes: .!var:”=!.
REM Если вы действительно хотите отклонить переменную с любыми кавычками…
ECHO !var! | FIND “””” >NUL && SET var=
REM Вот и все.
Я также пробовал: SET /P comment=Comment: < nul
чтобы пропустить обязательное нажатие Enter, но без возможности использовать SET /P (мной), я не могу сказать, что это может исправить оригинальное решение необходимости нажимать Enter. Основная проблема с SET /P, которую я имею, заключается в том, что такие вещи, как ECHO .!var!.
, ECHO !var!
, ECHO %comment%
и даже ECHO %%comment%%
на самом деле не дают никаких результатов. Переменные не устанавливаются. Только когда я вручную ввожу строку комментария сам, я получаю результаты. В противном случае – это беспорядок 🙂
Чтобы добавить комментарий к существующему архиву winrar, вы можете использовать что-то вроде этого:
echo Ваш комментарий здесь|rar c Archive.rar
Для добавления многострочного комментария:
(echo Line1&echo Line2&echo Line3)|rar c "Archive.rar"
Если вы хотите динамически добавить комментарий (вас попросят ввести комментарий, напишите его и нажмите {CTRL} + Z, когда закончите):
rar c Archive.rar
Добавить комментарий в существующий архив из текстового файла:
rar c -z"text.txt" Arquivo.rar
Создать новый архив и добавить комментарий из текстового файла:
rar a -z"text.txt" Archive.rar *.jpg
Создать новый архив и добавить комментарий из несуществующего текстового файла:
echo Ваш комментарий здесь >"temp.tmp"&rar a -z"temp.tmp" "Archive.rar" *.jpg&del temp.tmp
Просмотреть или записать существующие комментарии архива в файл:
rar cw -inul "Archive.rar"
rar cw -inul "Arquivo.rar">>"My comments.txt"
Копировать комментарий из одного архива в другой архив:
rar cw -inul "Archive1.rar"|rar c "Archive2.rar"
Ответ или решение
Вопрос заключается в том, как добавить комментарий к архиву WinRAR с помощью командного файла (batch file) при создании резервной копии папки. Для достижения этой цели, существует несколько методов, которые мы подробно рассмотрим.
Использование командного файла для добавления комментария
Первоначально предоставленный вами командный файл выглядит следующим образом:
@echo off
"C:\Program Files\WinRAR\Rar.exe" -r a -agYYYY-MM-DD-HH-MM "C:\Folder" "B:\Archive" -ep1 -r -m5
pause
Эта команда архивирует содержимое папки C:\Folder
в B:\Archive
. Чтобы добавить комментарий непосредственно через командную строку без использования внешнего файла, наилучший способ — воспользоваться командой rar c
, как указано в документации WinRAR.
Добавление комментария через командную строку
Вы можете ввести комментарий напрямую в командную строку следующим образом:
echo Ваш комментарий здесь | "C:\Program Files\WinRAR\Rar.exe" c "B:\Archive.zip"
Если ваш комментарий многолинейный, используйте такой формат:
(echo Строка1&echo Строка2&echo Строка3) | "C:\Program Files\WinRAR\Rar.exe" c "B:\Archive.zip"
Создание архивов с комментариями из текстового файла
Если требуется сохранять комментарии в файл, создавайте временный текстовый файл, чтобы избежать ввода в командной строке:
@echo off
echo Ваш комментарий здесь > C:\Temp\comment.txt
"C:\Program Files\WinRAR\Rar.exe" a -zC:\Temp\comment.txt "B:\Archive.zip" "C:\Folder"
del /F /Q C:\Temp\comment.txt
pause
Здесь мы создаем временный файл comment.txt
для хранения комментария и затем используем параметр -z
, чтобы добавить комментарий из этого файла в архив.
Заключение и рекомендации
Использование WinRAR для добавления комментариев через командную строку предоставляет гибкость и мощь, которую стоит использовать. Если вы планируете автоматизировать этот процесс, создание временных текстовых файлов будет удобным способом управления длинными и сложными комментариями. Это также упростит изменение комментариев в будущем.
При написании командных файлов всегда проверяйте пути к файлам и правами доступа для избегания ошибок во время выполнения. Это подход будет эффективен для резервного копирования и создания архивов с метаданными на регулярной основе.
Надеюсь, эта информация поможет вам эффективно реализовать ваши задачи с помощью WinRAR и командных файлов.