无意中的发现:vbs/cmd中奇怪的引号用法
应老总要求做一个小软件,功能是修改启动时加载的一个vbs文件代码(用vbs因为要模拟alt+enter键在把播放文件打开后启用全屏模式),达到可以随意修改每天播放的文件的目的,程序文件修改功能倒是好搞,但是在vbs启动播放文件时出问题了,实验了一下,确认问题是出在了播放文件路径有空格上。相关vbs语句:
WshShell.Run \"C:\\Documents and Settings\\qbb.XGLL-0498FFA422\\桌面\\新建文件夹\\lover.mpeg\"
只要稍微接触过vbs的朋友都知道“WshShell.Run”是执行程序的语句,和cmd命令相似。此中Documents and Settings中空格导致命令无法执行成功。
空格问题并不是什么大问题,很自然地给Documents and Settings加上引号,cmd下是可以这样执行的。在cmd下输入运行,确认一下此条语句,成功:
C:\\> C:\\\"Documents and Settings\"\\qbb.XGLL-0498FFA422\\桌面\\新建文件夹\\lover.mpeg
写成vbs为(由于加上的双引号在其他双引号内,故用asc码来表示):
WshShell.Run \"C:\\\"+chr(34)+\"Documents and Settings\"+chr(34)+\"\\qbb.XGLL-0498FFA422\\桌面\\新建文件夹\\lover.mpeg\"
运行,结果却出乎意料:错误。 -_- ||
...................................................
正在考虑解决办法中,在cmd下无意中输入错误,原语句前多加了双引号:
C:\\> \"C:\\Documents and Settings\\qbb.XGLL-0498FFA422\\桌面\\新建文件夹\\lover.mpeg
居然运行成功
马上写进vbs文件,成功!!!
无论是win系统还是linux系统,语句中间的两个双引号都有解决两者中间语句的空格之效果,难道整条语句前加一个双引号也能解决后面语句中空格问题而且更为有效? 这个有什么用呢
页:
[1]