cmd,在不知道扩展名的情况下在命令提示符 shell 中打开文件
cmd, Open file in Command Prompt shell without knowing its extension
我想在 cmd 中 运行 一个文件,但不知道类型(例如 JPG、mp3、txt、mp4 等)。
我尝试使用 'start' 命令,但开始(据我所知)需要知道文件的全名(带扩展名)以及它应该使用哪个程序 运行 它(例如 VLC,记事本, 照片查看器)。
因此,例如,我不希望使用 C:\AI>start "VLC media player" "Bernard.avi"
,而是希望使用 C:\AI>start "Bernard"
之类的东西来类似地工作。
在 linux 终端上你可以做这样的事情 vlc Bernard.*
,也许你可以尝试 windows 的 *
扩展。
如果您确定只有一个文件具有该文件名,您可以使用 for 循环来搜索该文件,如下所示:
FOR %A IN ("C:\path\to\directory\filename.*") DO start %A
在您的示例中,它将是:
FOR %A IN ("C:\AI\Bernard.*") DO start %A
您可以将其放入批处理脚本中:
@echo off
FOR %%A IN ("%~1.*") DO start %%A
并给出不带扩展名的文件名路径作为参数(不要忘记周围的双引号)。
如果多个文件具有该文件名,它将全部打开。
我想在 cmd 中 运行 一个文件,但不知道类型(例如 JPG、mp3、txt、mp4 等)。
我尝试使用 'start' 命令,但开始(据我所知)需要知道文件的全名(带扩展名)以及它应该使用哪个程序 运行 它(例如 VLC,记事本, 照片查看器)。
因此,例如,我不希望使用 C:\AI>start "VLC media player" "Bernard.avi"
,而是希望使用 C:\AI>start "Bernard"
之类的东西来类似地工作。
在 linux 终端上你可以做这样的事情 vlc Bernard.*
,也许你可以尝试 windows 的 *
扩展。
如果您确定只有一个文件具有该文件名,您可以使用 for 循环来搜索该文件,如下所示:
FOR %A IN ("C:\path\to\directory\filename.*") DO start %A
在您的示例中,它将是:
FOR %A IN ("C:\AI\Bernard.*") DO start %A
您可以将其放入批处理脚本中:
@echo off
FOR %%A IN ("%~1.*") DO start %%A
并给出不带扩展名的文件名路径作为参数(不要忘记周围的双引号)。
如果多个文件具有该文件名,它将全部打开。