我正在尝试使用 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/