使用批处理文件向 WinRar 存档添加注释

使用批处理文件向 WinRar 存档添加注释

使用 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%%

相关内容