Windows批处理脚本url解码

我有一个批处理脚本,在我的networking上为我触发vlc,问题是它基于浏览器中的URL打开。 浏览器会自动添加%20来代替常规空间,在将文件path发送到vlc之前,我需要在批处理脚本中再次用常规空间replace它。

这是我的代码;

@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系统上。

Solutions Collecting From Web of "Windows批处理脚本url解码"

 @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有自己的目录作为其启动路径。