Windows WIN cmd重定向操作符是否防止重复行?
输出到文件时,如何防止重复行Windows WIN cmd重定向操作符是否防止重复行?,windows,batch-file,cmd,io-redirection,Windows,Batch File,Cmd,Io Redirection,输出到文件时,如何防止重复行 ffmpeg.exe filename.mp4 -o filename.mkv >> output.log .log文件将填充10多行进度:对于每个编码步骤,0%以此类推 如何防止它只写进度:0%一次,然后等待进度1%,依此类推?这里有一个批处理代码,其中for从执行命令的STDOUT和STDERR读取每一行,并将其与以前的读取行进行比较。如果新读取的行与以前读取的行不同,则使用重定向操作符将该行输出到文件 @echo off setlocal Ena
ffmpeg.exe filename.mp4 -o filename.mkv >> output.log
.log文件将填充10多行进度:对于每个编码步骤,0%以此类推
如何防止它只写进度:0%一次,然后等待进度1%,依此类推?这里有一个批处理代码,其中for从执行命令的STDOUT和STDERR读取每一行,并将其与以前的读取行进行比较。如果新读取的行与以前读取的行不同,则使用重定向操作符将该行输出到文件
@echo off
setlocal EnableExtensions EnableDelayedExpansion
del output.log 2>nul
set "Line="
for /F "delims=" %%I in ('ffmpeg.exe filename.mp4 -o filename.mkv 2^>^&1') do (
if not "!Line!" == "%%I" (
set "Line=%%I"
echo !Line!>>output.log
)
)
endlocal
要了解所使用的命令及其工作方式,请打开命令提示符窗口,在其中执行以下命令,并非常仔细地阅读为每个命令显示的所有帮助页面
del/?
echo/?
endlocal/?
获取/?
如果/?
设置/?
setlocal/?
ffmpeg
,因此无法进行上述测试,也没有安装此工具的文档。但请看一看,因为我认为您真正需要的是将写入STDERR的消息重定向到输出文件中,其中包括:
ffmpeg.exe filename.mp4 -o filename.mkv 2>>output.log
重定向无法筛选数据。。。