Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 使用bat文件如何从目录中选择要处理的文件(如果该文件属于特定类型)_Windows_Batch File_Command Line_Batch Processing - Fatal编程技术网

Windows 使用bat文件如何从目录中选择要处理的文件(如果该文件属于特定类型)

Windows 使用bat文件如何从目录中选择要处理的文件(如果该文件属于特定类型),windows,batch-file,command-line,batch-processing,Windows,Batch File,Command Line,Batch Processing,我正在使用MediaInfo的命令行界面版本来提取几个参数,以保持代码简短。我只在下面显示几百个小型视频教程中的格式和持续时间,以处理它们以供其他用途 我使用一个.bat文件收集参数,通过管道将其传输到一个txt文件,然后在记事本中打开该文件: f:\path\mediainfo.exe "--Inform=Video;%%Format%%\r\n%%Duration/String%%" "tutorial.mp4" > out.txt sleep 1 start out.txt 现

我正在使用MediaInfo的命令行界面版本来提取几个参数,以保持代码简短。我只在下面显示几百个小型视频教程中的格式和持续时间,以处理它们以供其他用途

我使用一个.bat文件收集参数,通过管道将其传输到一个txt文件,然后在记事本中打开该文件:

f:\path\mediainfo.exe "--Inform=Video;%%Format%%\r\n%%Duration/String%%" "tutorial.mp4" > out.txt

sleep 1

start out.txt
现在,我必须将实际的视频名称剪切并粘贴到批处理文件中,上面代码中的文件名是tutorial.mp4,因为我不知道如何以编程方式将该参数添加到mediainfo命令中

所以,我的问题是,既然视频文件总是.avi或.mp4,有没有办法在bat文件中添加一些代码,以便在bat文件所在的目录中查找文件,如果是这两种类型中的任何一种,请将文件名插入第一行,就像我现在看到的那样?子目录中只有一个视频文件,它将是.avi或.mp4。子目录中可能有其他文件类型,因此出于这个原因,我不能说选择子目录中唯一的文件并将其插入bat文件

我想知道文件顶部是否添加了以下内容:

IF EXIST *.avi || *.mp4
但是我不知道是否可以像那样使用OR命令,也不知道如何将文件名分配给变量,以及如何在mediainfo.exe行中使用该变量

for %%A in ("C:\folder\*.mp4" "C:\folder\*.avi") Do Echo %%A
要在Windows NB中以交互方式列出ini文件,请批量使用%A而不是%%A。粘贴下面的标签

for %A in (%windir%\*.ini) do Echo %~tA %~aA %A 
请参阅以获取/

注意:这条线没有任何作用。使用Waitfor、timeout或choice。查看每个人的帮助-等待/?等

要在Windows NB中以交互方式列出ini文件,请批量使用%A而不是%%A。粘贴下面的标签

for %A in (%windir%\*.ini) do Echo %~tA %~aA %A 
请参阅以获取/


注意:这条线没有任何作用。使用Waitfor、timeout或choice。查看每个人的帮助-等待/?等。

谢谢,@面条。这对我有用。我只是附加了f:\path\mediainfo.exe。。。命令到for命令的末尾,而不是Echo,并且它可以工作。我需要SLEEP命令,因为当我昨晚运行这个脚本时,输出文件不是即时生成的。再加上延迟,它就有时间被创建,然后在记事本中打开。我猜我的CPU被一些正在运行的后台程序搞砸了。今天早上文件马上就要打开了。谢谢,@面条。这对我有用。我只是附加了f:\path\mediainfo.exe。。。命令到for命令的末尾,而不是Echo,并且它可以工作。我需要SLEEP命令,因为当我昨晚运行这个脚本时,输出文件不是即时生成的。再加上延迟,它就有时间被创建,然后在记事本中打开。我猜我的CPU被一些正在运行的后台程序搞砸了。今天早上文件马上就要打开了。