无法使用批处理脚本写入 .vbs 脚本
Posted
技术标签:
【中文标题】无法使用批处理脚本写入 .vbs 脚本【英文标题】:Unable to use batch script to write to a .vbs script 【发布时间】: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,最后不加引号?感谢您的帮助!
【问题讨论】:
【参考方案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。
【讨论】:
以上是关于无法使用批处理脚本写入 .vbs 脚本的主要内容,如果未能解决你的问题,请参考以下文章