【问题标题】:Unable to use batch script to write to a .vbs script无法使用批处理脚本写入 .vbs 脚本
【发布时间】:2021-02-07 02:47:51
【问题描述】:

我正在使用批处理脚本来创建和写入 .vbs 文件。 该文件名为 invisible.vbs。

这是创建和编写 .vbs 脚本的批处理脚本。

echo.>"C:\Users\LinFamily\Desktop\invisible.vbs"
echo CreateObject("Wscript.Shell").Run &WScript.Arguments(0)&,0,False >> invisible.vbs

第一行代码运行良好并创建了 invisible.vbs ,但脚本没有将第二行代码写入 invisible.vbs ,而是尝试像运行代码一样运行它。

我用了引号,

"CreateObject("Wscript.Shell").Run &WScript.Arguments(0)&,0,False" >> invisible.vbs

代码被写入invisible.vbs,但引号也被写入invisible.vbs,这不是我想要的。如果有引号,Invisible.vbs 将不起作用。

我尝试过使用括号,但这也不起作用。

有没有办法把代码写到invisble.vbs,最后不加引号?感谢您的帮助!

【问题讨论】:

    标签: batch-file vbscript


    【解决方案1】:

    特殊字符 ) 和 & 需要 ^ 转义。

    rem [ write all lines in one operation using parenthesis ]
    > "invisible.vbs" (
    echo(CreateObject("Wscript.Shell"^).Run ^&WScript.Arguments(0^)^&,0,False
    )
    

    【讨论】:

      【解决方案2】:

      您的代码中有与号什么都不做,这在 VBScript 的任何标准中都没有。简而言之,巫毒代码。这是非法的 VBScript 代码

      与号和重定向在其他命令之前由 CMD exe 评估。所以它不会写它们。

      所以代码不起作用的两个原因。

      如果您尝试运行该 VBScript,则会显示 Line 1 Character 35 (&) Syntax Error

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-11
        • 1970-01-01
        • 2014-05-31
        相关资源
        最近更新 更多