При использовании 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
решение1
Вероятно, проще всего сделать это с помощью файла, но вы можете просто сгенерировать его на лету. Пример может выглядеть так:
@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
решение2
SET /P comment=Comment: seems to need a manual Enter-press, otherwise the command just waits...
Пытаясь решить эту проблему для вас всех... я застрял.
Поэтому я придумал другое решение, которое проще и работает так же хорошо, если не лучше?
@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="Введите здесь что угодно:" ECHO .!var!. ECHO удалите кавычки: .!var:"=!. REM Если вы действительно хотите отклонить переменную с любыми кавычками... ECHO !var! | FIND """" >NUL && SET var= REM Вот и все.
Я также пробовал: SET /P comment=Comment: < nul
пропустить обязательное нажатие Enter, но без способа использовать SET /P (моим), я не могу сказать, что это могло бы исправить изначальное решение с нажатием Enter. Основная проблема с SET /PI заключается в том, что такие вещи, как ECHO .!var!.
, ECHO !var!
, ECHO %comment%
и даже ECHO %%comment%%
фактически не дали никаких результатов. Переменные не установлены. Только когда я вручную ввожу строку комментария, я могу получить результаты. В противном случае это беспорядок :)