在 Windows 中通过文件 URI 将参数传递给批处理文件

在 Windows 中通过文件 URI 将参数传递给批处理文件

这里使用 Windows 10。

代入open_video.bat

"%USERPROFILE%\Desktop\VLCPortable media player\VLCPortable.exe" --start-time=54 --stop-time=89 "%USERPROFILE%\Downloads\some_video.mkv"

位置open_video.batC:

在 Notepad++ 中我有下面这个链接,我通过双击它来调用批处理文件:

file:///C:\open_video.bat

当我双击批处理文件时,它会some_video.mkv54第二个标记开始在 VLC 中打开,播放到89第二个标记,然后在这两个时间戳之间循环播放视频。

但是,我不想硬编码5489。有什么方法可以写入批处理文件的链接,并修改批处理文件中的代码,以便我可以将54或任何内容和89或任何内容作为参数或参数传递?

例如,将批处理文件的链接重写为类似以下内容:

file:///C:\open_video.bat?start=54&end=89

并修改批处理文件的代码如下:

"%USERPROFILE%\Desktop\VLCPortable media player\VLCPortable.exe" --start-time=start --stop-time=end "%USERPROFILE%\Downloads\some_video.mkv"

或者类似的东西?

答案1

您可以像这样修改批处理文件:

"%USERPROFILE%\Desktop\VLCPortable media player\VLCPortable.exe" --start-time=%1 --stop-time=%2 "%USERPROFILE%\Downloads\some_video.mkv"

然后像这样调用它:

C:\open_video.bat 54 89

或者在文件 URI 中:

file:///C:\open_video.bat%2054%2089

在编码的 URL 中,%20 是空格,用参数替换 54 和 89。

答案2

https://stackoverflow.com/a/2141333/9731176,在大多数情况下这似乎是不可能的:

我假设您使用的是 Windows?如果是这样,则无法使用“file://”语法传递参数,因为它是一种不接受参数的异步可插入协议。

相关内容