MediaInfo (CLI) 和批处理文件无法工作

问题描述 投票:0回答:1

我正在尝试学习如何使用 MediaInfo (CLI)。在此过程中,我偶然发现了这个线程,它提供了一些有希望的价值。 MediaInfo CLI(命令行界面)语法教我一劳永逸

但是,当我尝试在批处理文件中编写脚本时,MediaInfo 将**不会**处理 mp4 文件并读取我要求的数据。

如果我复制/**粘贴**直接到命令提示符,它**将**返回请求的值。

有其他人以前见过这个,或者有任何想法可能会使使用 mediainfo 的批处理文件变得无用吗?

这是我在批处理文件(失败)和直接在命令提示符(成功)中运行的代码:

mediainfo --Output="常规;文件名:%FileName% 持续时间:%持续时间/字符串3% 大小:%FileSize/String%" "D:\Movies\Saving Private Ryan (1998).mp4" >> D:\OutputTest.txt

直接粘贴/键入命令提示符时的输出:

File Name: Saving Private Ryan (1998)
Duration: 02:49:26.848
Size: 10.8 GiB

在批处理文件中运行完全相同的代码时我的输出:

File Name: 
Duration: 
Size: 

谢谢,

软件: W10Pro v22H2(最新) MediaInfo CLI x64 v23.07(最新版本)

windows batch-file command-prompt mediainfo
1个回答
0
投票

这不是关于 MediaInfo,而是关于 Windows 批处理。

如果我直接复制/**粘贴**到命令提示符中,它**将**返回请求的值。

复制/粘贴是不是复制/粘贴内容的含义,因为Windows批处理器会解释一些字符(这里是%),类似于您用**写的粗体字(粗体在粗体,但我实际上写了**粗体**,有一个解释器,并且**粗体**的复制/粘贴在记事本中与这个地方不一样)。

您需要转义 % 字符,转义字符是 %,因此将“%”替换为“%%”并且它可以工作(MediaInfo 或任何其他工具将收到“%”,因为解释器将“%%”解释为“%”并向工具提供“%”;当您写入“%”时,批处理解释器会解释序列,在您的情况下它是无效的,因此“%”被丢弃,并向工具提供“”,而不是“%” ”)。

© www.soinside.com 2019 - 2024. All rights reserved.