Windows 批处理脚本 url 解码

标签 windows batch-file

我有一个在我的网络上为我触发 vlc 的批处理脚本,问题是它根据浏览器中的 URL 打开。 浏览器会自动添加 %20 来代替常规空格,在将文件路径发送到 vlc 之前,我需要在我的批处理脚本中再次用常规空格替换它。

这是我的代码;

@echo off
set str=%1
set str=%str:~8%
set str=%str:%%20= %
START /D "C:\Program Files\VideoLAN\VLC\" vlc.exe %str%
pause

值得一提的是,这将在 windows 7 和/或 vista 系统上运行。

最佳答案

@echo off
setlocal enabledelayedexpansion
set str=%~1
set str=%str:~7%
set str=!str:%%20= !
"C:\Program Files\VideoLAN\VLC\vlc.exe" "%str%"
pause

还冒昧地修复了一些其他问题。如果脚本在参数周围用引号运行,它总是有一个尾随 " 。延迟扩展在这里为您提供了第二组变量定界符,避免了 % 的麻烦。此外, 据我所知,不需要 start,除非您严重依赖 VLC 将其自己的目录作为其启动路径。

关于Windows 批处理脚本 url 解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3453920/

相关文章:

mysql - 条件 MySQL 列

c++ - Windows 限制中的共享内存 (c++)

python - 在另一个驱动器上创建 virtualenv - 访问被拒绝

batch-file - 根据 json 文件中的键提取特定字符串

windows - 如何在 Windows 命令行和批处理脚本中处理文件名中的日语字符?

linux - 如何在 Linux 上的 VirtualBox 上在 Windows 上运行 Docker?

当在 Windows 10 上点击 `Ctrl + C` 按钮时,Python 代码显示在屏幕上。如何隐藏它?

batch-file - 使用 robocopy 截断日志

windows - 使用批处理脚本逐行读取文本文件并将其存储在数组中

batch-file - 在打开 Internet Explorer 选项卡之前运行 tomcat