Board logo

标题: [文件操作] 批处理不能正确处理有特殊字符的文件参数? [打印本页]

作者: tx12321    时间: 2011-2-10 15:18     标题: 批处理不能正确处理有特殊字符的文件参数?

为了能实现在浏览器中播放本地视频,我写了个批处理来借助 快播 播放器 实现,郁闷的是不能正确处理文件名中包含特殊字符的视频文件,特向大家求助。具体如下:
  1. @echo off
  2. CLS
  3. Rem 下面写入一段html代码到网页文件中,由于html对是否换行不敏感所以只用一行echo避免写入次数过多。
  4. Rem 关键是在param name='URL' value=%1,%1为视频路径(如value=C:\123.rmvb或value="C:\123.rmvb")
  5. echo ^<html^>^<head^>^<title^>%~f1^</title^>^</head^>^<body^>^<object classid="clsid:F3D0D36F-23F8-4682-A195-74C92B03D4AF" width="720" height="420" id="QvodPlayer" name="QvodPlayer" onerror="if(window.confirm('请您先安装QvodPlayer软件,然后刷新本页才可以正常播放.')){window.open('http://www.qvod.com/download.htm')}else{self.location='http://www.qvod.com/'}"^>^<param name='URL' value=%1 /^>^<param name='Autoplay' value='1' /^>^</object^>^</body^>^</html^>>%temp%\temp.html
  6. Rem 用默认浏览器打开生成的页面
  7. start %temp%\temp.html
复制代码
上述代码的效果是当视频文件用该批处理打开(或拖拽至批处理上松开)时在临时文件夹中生成一个网页文件并用默认浏览器将其打开,打开后网页中调用快播的COM播放控件播放对应视频文件。测试普通的视频文件后正常播放,但是有部分文件所取路径总是不正常,如
  1. 《神医喜来乐》[完全音乐版·网络独家发布].第14集 .mkv
复制代码
一般都是把“第14集”当成了后缀名,后面的“ .mkv”没了。

PS:我用的C:\autorun.inf\qvod.bat打开的E:\kankan\《神医喜来乐》[完全音乐版·网络独家发布].第14集 .mkv

[ 本帖最后由 tx12321 于 2011-2-10 15:27 编辑 ]
作者: abcd    时间: 2011-2-10 17:03

试试把%1用双引号引上
作者: CrLf    时间: 2011-2-10 17:06

参数含空格,可以使用%*
作者: tx12321    时间: 2011-2-13 18:54

因故重装下系统,又正常了,可以正确获取文件路径了,所以觉得可能是系统配置问题(我重装的200多M的纯净版XP)。




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2