【问题标题】:Create a vbs file from a batch file从批处理文件创建 vbs 文件
【发布时间】:2018-03-14 21:51:28
【问题描述】:

这是vbs文件:

set w = CreateObject^("WScript.Shell"^)

W.Run chr^(34^) & "explore.bat" & chr^(34^), 0

echo set w= Nothing

(它将运行一个批处理文件,但隐藏在后台)

我尝试了来自 this post 的建议...这是我目前的 bat 文件(应该制作 vbs 文件 - 不打开它):

(
 echo set w = CreateObject^("WScript.Shell"^)

 echo W.Run chr^(34^) & "explore.bat" & chr^(34^), 0

 echo set w= Nothing
)>"1623.vbs"

这不起作用,它最终打开了explore.bat(它不应该,它应该只是制作vbs文件)。我只想制作vbs文件。

我可能完全错了(我对此很陌生),寻求任何建议。


我也尝试使用this advice,但没有成功(因为它是多行)

【问题讨论】:

  • 你需要转义&符号。

标签: batch-file vbscript


【解决方案1】:

您忘记转义“&”符号。下面是解决的版本

(
 echo set w = CreateObject^("WScript.Shell"^)

 echo W.Run chr^(34^) ^& "explore.bat" ^& chr^(34^), 0

 echo set w= Nothing
)>"1623.vbs"

【讨论】:

    【解决方案2】:

    虽然问题没有转义 & 符号,但您也可以通过避免使用 Chr(34) 来完全避免它:

    (
     echo set w = CreateObject^("WScript.Shell"^)
    
     echo W.Run """explore.bat""", 0
    
     echo set w= Nothing
    )>"1623.vbs"
    

    您的Run 命令会将explore.bat 作为单 双引号("explore.bat") 传递。

    基本上,您是在 引用引号,就像引用字符串 a:"a" 一样。如果你用双引号 " 替换 a,你会得到 """。(基本上只是把中间的引号想象成来自的字母 a上一个示例来可视化其工作原理)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-31
      • 2013-09-25
      • 1970-01-01
      相关资源
      最近更新 更多