vbs代码字符错误怎么修改,vbs错误代码怎么解决

首页 > 实用技巧 > 作者:YD1662023-12-07 02:46:22

  之前写了一段vbs调用bat的代码,需要将vbs中的文件夹名称以参数的形式传递给bat,今天在使用过程中发现:当文件夹名称中含有空格的时候,bat会截取空格之前的部分。比如,当前文件夹C:\Program Files,vbs代码如下:

  set ws1=wscript.createobject("wscript.shell")

  mulu1=ws1.CurrentDirectory

  a1=Ws1.run("%USERPROFILE%\Gzidingyi\tupianshouji1.bat "&mulu1&"",0)

  在vbs中,mulu1要获取当前文件夹C:\Program Files的名称,并以字符串的形式将文件夹名称传递给bat。bat代码如下:

  set lujing1=%1

  在调试的过程中发现,bat中lujing1获得的字符串不是C:\Program Files,而是C:\Program。然后在网上看到了在vbs中可以用两个双引号代替引号的办法,这个其实在vba中也用过,两个连续的双引号在字符串中表示一个双引号。于是将vbs代码改成下面的形式:

  set ws1=wscript.createobject("wscript.shell")

  mulu1=ws1.CurrentDirectory

  a1=Ws1.run("%USERPROFILE%\Gzidingyi\tupianshouji1.bat """&mulu1&"""",0)

  重新调试后,发现bat中lujing1仍然不是C:\Program Files,而是"C:\Program Files",多了一对双引号,那是不是加一对双引号就够了呢?换成下面的形式试试:

  a1=Ws1.run("%USERPROFILE%\Gzidingyi\tupianshouji1.bat ""&mulu1&""",0)

  这次vbs直接报错了。所以又回到两对双引号的形式上来,既然vbs已经尽力了,下来再改bat这边。set lujing1=%1后,只需要去掉两侧的双引号就行了。于是将代码改成下面的形式:

  set lujing1=%1

  set lujing1=%lujing1:~1,-1%

经测试,这种办法是可行的。

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.