sle*_*ira 5 batch command-line 7-zip
我使用 7-zip(在我的批处理文件中)打包一些目录并通过电子邮件发送存档。当我在运行批处理文件的同时使用此目录中的某个文件时(我使用 Task Scheduler 启动批处理文件),我看到正在处理的警告消息。在此之后,当存档准备好时,7-zip 会在发送电子邮件之前显示如下消息:“警告:无法打开 29 个文件”。发生这种情况时,我希望能够设置一个%MESSAGE%
值为“29 个警告正在进行中”的环境变量(类似于),并将此消息放在电子邮件的主题中。但是现在所能做的就是使用%ERRORLEVEL%
变量。如果我无法设置%MESSAGE%
变量,是否可以将警告消息写入文件,然后解析该文件以提取最后一行?
我建议您使用7-Zip 命令行版本(7za.exe)。
像下面这样的命令会将所有输出(包括来自 stderr)重定向到Log.txt:
7za a Test.7z *.* >Log.txt 2>&1
Run Code Online (Sandbox Code Playgroud)
此外,7-Zip 返回以下退出代码,您可以在带有 %ERRORLEVEL% 的批处理文件中使用这些代码:
0 = 没有错误。
1 = 警告(非致命错误)。例如,一个或多个文件被某个其他应用程序锁定,因此它们没有被压缩。
2 = 致命错误。
7 = 命令行错误。
8 = 没有足够的内存进行操作。
255 = 用户停止了进程。
编辑:如果您不想要包含所有这些Compressing <filename>
行的详细日志,请改用以下命令:
7za a Test.7z *.* | findstr /i /v "pavlov scanning compressing" >Log.txt 2>&1
Run Code Online (Sandbox Code Playgroud)
(上面带有开关的 findstr 命令排除了所有包含引号内单词的行。)
归档时间: |
|
查看次数: |
27292 次 |
最近记录: |