返回

VBScript执行Main.vbs后如何解决不执行B.vbs的问题?

windows

VBScript 执行 Main.vbs 中调用 B.vbs 后不执行 B.vbs 文件

问题概述

当你尝试使用 VBScript 在 Main.vbs 文件中调用 B.vbs 文件时,可能会遇到 B.vbs 文件不执行的问题。这可能很令人沮丧,因为你无法访问或使用 B.vbs 文件中的内容。

问题解决方法

这个问题的原因通常是重定向运算符 (>>) 的使用不当。要将 B.vbs 文件的输出重定向到文件中,你需要在 sEXE 字符串中正确指定重定向运算符。

以下是修改后的代码,它应该可以正常工作:

sEXE = """\\uncpath\file.exe" >> "\\\\uncpath\%computername%.txt""""
with CreateObject("WScript.Shell")
  .Run sEXE, 1, true ' 等待完成或 False 不等待
end with

注意:

  • 确保将 \\ 转义为 \\\\ 以防止 VBScript 将其解释为转义序列。
  • 确保文件 \\\\uncpath\%computername%.txt 存在且具有写入权限。

结论

通过正确使用重定向运算符,你可以成功地将 B.vbs 文件的输出重定向到文件中。现在,你可以访问和使用该文件中存储的内容,从而解决你的问题。

常见问题解答

1. 为什么我无法使用以下代码将输出重定向到文件中?

sEXE = """\\uncpath\file.exe>>\\uncpath\%computername%.txt"""

答: 你需要使用双引号将重定向运算符括起来,如下所示:

sEXE = """\\uncpath\file.exe" >> "\\\\uncpath\%computername%.txt""""

2. 我收到错误信息“with CreateObject("WScript.Shell")”。这是什么意思?

答: 该错误通常表示 sEXE 字符串中的语法存在错误。请检查重定向运算符是否正确使用。

3. 为什么我无法在文件中看到任何输出?

答: 确保文件 \\\\uncpath\%computername%.txt 存在且具有写入权限。此外,验证 file.exe 正在生成输出。

4. 如何使用 VBScript 将输出重定向到多个文件?

答: 你可以使用 & 符号连接多个重定向运算符。例如:

sEXE = """\\uncpath\file.exe" >> "\\\\uncpath\%computername%.txt" & " >> \\\\uncpath\log.txt""""

5. 除了重定向到文件之外,VBScript 还支持哪些其他重定向选项?

答: VBScript 还支持将输出重定向到控制台或管道。你可以使用 /C/R 开关来指定这些重定向。