在VBS中,如果RUN的路径里有空格,一般情况下都要将路径进行转换,转换成VBS认识的格式,如:路径C:/Program Files/1.bat一般要写成:C:/Progra~1/1.bat,这本来也没有什么,只是我对这种转换德规则不是很熟悉,在转换中经常出现错误。
幸好在 优游天下 中发现了这么一段代码可以解决这个矛盾。现将代码抄录如下:
Dim Wsh
Set Wsh = WScript.CreateObject("WScript.Shell")
WScript.Sleep(60000)
Wsh.Run chr(34) & "C:/Program Files/1.bat" & chr(34),,True
Set Wsh=NoThing
WScript.quit
解决的方法很简单,就是在代码中路径前后添加红色字体部分。联想到以前前段时间关于在hta中文件名有空格,致使图片不能正常显示的问题,找出源码,添加红色字体部分。显示正常,问题的解。
全部代码如下:
<head>
<title>图片</title>
<HTA:APPLICATION
APPLICATIONNAME="图片"
SCROLL="no"
SINGLEINSTANCE="yes"
WINDOWSTATE="normal"
ShowInTaskBar="yes"
MaximizeButton="no"
MinimizeButton="no"
SCROLL="no"
NAVIGABLE="yes"
BORDER="thin"
>
</head>
<script language="VBScript">
window.resizeTo 330,400
ileft=(window.screen.width-330)/2
itop=(window.screen.height-400)/24
window.moveTo ileft,itop
Sub liulan
Set objDialog = CreateObject("UserAccounts.CommonDialog")
objDialog.Filter = "JPG File|*.jpg|"
objDialog.ShowOpen
path = objDialog.FileName
str="<img src=" & chr(34) & path & chr(34) &" border='1' width='300' height='300'>"
tupian.innerHTML=str
End Sub
</script>
<body bgcolor="0099ff" /设置背景颜色>
<input type="button" name="liulan" value="浏览" onclick="liulan">
<span id="tupian">图片展示处</span>
</body>
问题解决的很完美,解决的方法很简单,不过就是不太明白原理,为什么在路径前后添加chr(34) 字符,就可以正确读取路径?不知那位大侠能指教一下。