Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vbscript 在写入vbs时,批处理脚本无法创建结束括号)_Vbscript_Batch File - Fatal编程技术网

Vbscript 在写入vbs时,批处理脚本无法创建结束括号)

Vbscript 在写入vbs时,批处理脚本无法创建结束括号),vbscript,batch-file,Vbscript,Batch File,我正在尝试通过批处理文件创建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

我正在尝试通过批处理文件创建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脚本主机版本5.8 版权所有(C)微软公司。版权所有

C:\Users\arvind\Desktop\zip\zipIt.vbs(1,42)Microsoft VBScript编译器 ror:Expected')”

尝试以下操作:

echo Set oShell = CreateObject("WScript.Shell"^) >> zipIt.vbs
echo Set oShell = CreateObject("WScript.Shell"^) >> zipIt.vbs
试试这个:

echo Set oShell = CreateObject("WScript.Shell"^) >> zipIt.vbs
echo Set oShell = CreateObject("WScript.Shell"^) >> zipIt.vbs
就像恩多说的:

试试这个:

echo Set oShell = CreateObject("WScript.Shell"^) >> zipIt.vbs
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
就像恩多说的:

试试这个:

echo Set oShell = CreateObject("WScript.Shell"^) >> zipIt.vbs
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

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

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

什么操作系统(xp、win7、win server 2003等)?在Win7和WinServer 2003中,这对我来说很好。您确定发布了完全相同的内容吗?它在我的win7和WinXP中工作。我在win7机器上试用过它。什么操作系统(xp、win7、win server 2003等)?在Win7和WinServer 2003中,这对我来说很好。您确定发布了完全相同的内容吗?它在我的win7和WinXP中工作。我在win7机器上试用了它。经过一些检查后,我“取消”了我的帖子
:>)
是的,你是对的:)。代码块外部不需要转义。但是在代码块内,解释器搜索下一个匹配的括号,并在匹配处停止。转义的结束括号被忽略。经过一些检查后,我“取消删除”了我的帖子
:>)
是的,你是对的:)。代码块外部不需要转义。但是在代码块内,解释器搜索下一个匹配的括号,并在匹配处停止。转义的右括号被忽略。yes jeb此代码位于for块内,并且我收到一条错误消息:该进程无法访问该文件,因为它正被另一进程使用。yes jeb此代码位于for块内,并且我收到一条错误消息:该进程无法访问该文件,因为它正被另一进程使用。