【问题标题】:CMD on Windows echo variable value from text lineWindows 上的 CMD 从文本行回显变量值
【发布时间】:2021-02-23 14:55:22
【问题描述】:

我有一个txt文本文件,我想在里面生成一个变量的数值

文本文件的结构是这样的:

[Parsed_mpdecimate_0 @ 00000270d861c680] 875> = hi keep pts: 142000 pts_time: 8.875 drop_count: -2
[Parsed_mpdecimate_0 @ 00000270d861c680] keep pts: 142667 pts_time: 8.91669 drop_count: -3
[Parsed_mpdecimate_0 @ 00000270d861c680] keep pts: 143333 pts_time: 8.95831 drop_count: -4
[Parsed_mpdecimate_0 @ 00000270d861c680] 783> = hi keep pts: 144000 pts_time: 9 drop_count: -5
Etc....

如何生成“pts_time”变量号?并在屏幕上打印列表

我知道windows 10中有AWK命令,我该怎么办?

【问题讨论】:

  • 我不知道 Windows 10 中有 awk。请复制并粘贴您尝试使用的代码作为文本。 SO 不是免费的定制脚本编写服务。请提供符合stackoverflow.com/help的MRE(最小可重现示例)
  • 我将假设这是来自 ffmpeg 命令的输出,我最好的猜测是您想要解析它,仅输出以下内容:pts_time: 8.875, pts_time: 8.91669pts_time: 8.95831pts_time: 98.8758.916698.958319。当您edit您的问题提交您遇到问题的代码时,您能否澄清一下。
  • 没错,就是用ffmpeg生成的输出。我想一次读取一行并提取 pts_time 参数。我必须在屏幕上显示这些参数它应该是字符串上的一些函数

标签: string variables cmd find echo


【解决方案1】:

这是一种相对较慢的方式,(只需将 C:\Users\felikszed\Desktop\ffmpegOutput.txt 更改为文本文件的完整路径)

For /F "Delims=" %G In ('%SystemRoot%\System32\findstr.exe /R "^\[Parsed_mpdecimate_.*pts_time:" "C:\Users\felikszed\Desktop\ffmpegOutput.txt"') Do @Set "}=%G" & For /F %H In ('%SystemRoot%\System32\cmd.exe /V /D /C "Echo(!}:*pts_time:=!"') Do @Echo %H

[编辑/]

根据您的评论,如果您想在 中运行它,您应该使用适当的标签,我也会为此提供解决方案。

这里是:

@Echo Off & SetLocal EnableExtensions DisableDelayedExpansion
For /F "Delims=" %%G In ('%SystemRoot%\System32\findstr.exe /R
 "^\[Parsed_mpdecimate_.*pts_time:" "C:\Users\felikszed\Desktop\ffmpegOutput.txt"'
) Do (Set "}=%%G" & SetLocal EnableDelayedExpansion
    Echo(!}:*pts_time:=!& EndLocal)
Pause

【讨论】:

  • 抱歉,您能否解释一下您的评论@felikszed? i solved this problem 是什么意思?这里只有一个解决方案,它是我的,不是你的。如果您在没有我帮助的情况下解决了问题,在 cmd.exe 中,您能否分享您的代码作为答案?如果这是一个错字,并且我上面的回答解决了您的问题,请阅读What should I do when someone answers my question?,以了解当答案有效时您可以选择的选项。我建议您将该答案标记为已接受。
  • Compo,你帮助了我,你的解决方案是最好的,它可以工作我无法将代码放在 .bat 文件中,但它仍然可以正常工作,非常感谢你
  • @felikszed,我为 Windows 上的标题 CMD 和 [cmd] 标签提供了答案。您没有在问题标题、正文或标签中提及批处理文件。如果您希望它在批处理文件中工作,则需要进行一些修改。
  • 我已经为你添加了[batch-file]版本。
猜你喜欢
  • 1970-01-01
  • 2016-04-17
  • 1970-01-01
  • 2014-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-03
  • 2012-07-24
相关资源
最近更新 更多