0

我正在尝试通过批处理文件创建一个 vbs。但是有一条线我包含了一个对象。批处理文件无法将右括号 ) 写入 vbs,这在运行 vbs 时导致错误。

批处理文件代码为:

echo Set oShell = CreateObject("WScript.Shell") >> zipIt.vbs

输出:

 echo Set oShell = CreateObject("WScript.Shell"
) 1>>zipIt.vbs
The process cannot access the file because it is being used by another process.

vbs zipIt.vbs

Set oShell = CreateObject("WScript.Shell"

vbs 输出:Microsoft (R) Windows Script Host Version 5.8 版权所有 (C) Microsoft Corporation。版权所有。

C:\Users\arvind\Desktop\zip\zipIt.vbs(1, 42) Microsoft VBScript 编译错误:预期为 ')'

4

3 回答 3

2

试试这个:

echo Set oShell = CreateObject("WScript.Shell"^) >> zipIt.vbs
于 2013-04-15T11:03:02.117 回答
1

就像 Endoro 说的:

试试这个:

echo Set oShell = CreateObject("WScript.Shell"^) >> zipIt.vbs

您的错误消息表明,您的行是位于括号块中的行的一部分。
因此,您遇到了右括号的问题(也在 echo 语句中)。
您可以通过转义右括号来避免此问题。

形成您的评论,我建议尝试这样的事情。
它对整个块只使用一个重定向,它更快、更可靠。

(
  for %%a in (dummy) DO (
    echo Set oShell = CreateObject("WScript.Shell"^)
    echo oShell.someMethod
  )
) > zipIt.vbs
于 2013-04-15T11:44:22.057 回答
0

当您回显任何代码时,您应该始终帮助批处理解释器了解什么是文本以及什么是批处理代码。因此,请始终使用插入符号“^”转义括号、更少和更大的符号以及类似的可能批处理代码部分。因此,它们被解释为普通文本。

于 2018-08-29T08:19:08.333 回答