batch-file - CMD 批处理和 7z : Capture the progress of the extraction

标签 batch-file cmd 7zip findstr

我正在尝试使用 7zip 命令行工具从批处理文件中提取某些内容 我只想显示百分比进度

我的代码是

@echo off
for /f "tokens=3 delims=. " %%i in (
'7z x "file.rar" ^| findstr /b /r " [0-9][0-9]*\%%"'
) do (
cls
echo %%i
)
PAUSE

但是在整个提取过程中我得到的只是空白。

出了什么问题?

最佳答案

问题是 FOR/F 获取命令的整个输出,当命令完成时,它开始迭代各行。
嗯,这不能用来解决你的任务。

但是您可以将输出通过管道传输到另一个进程,在本示例中,我使用与第二个进程相同的批处理(%~f0 是批处理本身)

@echo off
setlocal EnableDelayedExpansion

if "%~1"==":pipe" goto %~1

7z x "file.rar" | findstr /b /r " [0-9][0-9]*\%%" | "%~f0" :pipe
echo Ready
exit /b

:pipe
set "line="
set /p line=
if defined line (
    echo #### !line!
    goto :pipe
)

关于batch-file - CMD 批处理和 7z : Capture the progress of the extraction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33386921/

相关文章:

java - 任何在 OSX 上浏览文件(耳朵、 war 、 jar )的好工具

Azure管道,自托管代理,我可以使用脚本中的zip实用程序吗

parsing - 从批处理脚本中的字符串中获取最后一个标记

batch-file - 使用 REG QUERY 仅返回注册表项的值

Python函数: using a batch file to pass parameters from . txt文件转python函数并执行函数

windows - 如何在 Windows CMD 中启用 bash 命令?

loops - For循环通过批处理文件重命名.jpg文件

batch-file - 字符串批处理文件的 Base64 解码

cmd - 在没有 PATH 变量的 cmd 中的任何位置运行 .exe

java - FileNotFound 异常