wscript 有哪些常用命令和方法?

WScript 除了 Echo 之外,还有以下常用命令和方法

  1. CreateObject

    • 作用:创建 COM 对象实例,用于调用系统功能或第三方应用程序的自动化接口。
    • 示例
      Set objShell = WScript.CreateObject("WScript.Shell")  ' 创建 Shell 对象
      objShell.Run "notepad.exe", 1, True  ' 用记事本打开文件
      
  2. Quit

    • 作用:终止脚本执行,可返回错误代码(用于批处理中判断脚本执行结果)。
    • 示例
      WScript.Quit 0  ' 正常退出,返回代码 0
      
  3. Sleep

    • 作用:暂停脚本执行指定毫秒数,常用于延迟操作。
    • 示例
      WScript.Sleep 3000  ' 暂停 3 秒
      
  4. Arguments(命令行参数处理)

    • 作用:通过 WScript.Arguments 集合获取脚本启动时传入的参数。
    • 示例
      ' 假设脚本通过命令行调用:cscript script.vbs /name:Test
      If WScript.Arguments.Named.Exists("name") Then
          WScript.Echo "参数值为: " & WScript.Arguments.Named("name")
      End If
      
  5. GetObject

    • 作用:获取已存在的 COM 对象或文件中的对象(如 Excel 文件、Word 文档)。
    • 示例
      Set xlApp = GetObject(, "Excel.Application")  ' 连接已运行的 Excel 实例
      
  6. ConnectObject / DisconnectObject

    • 作用:将对象的事件绑定到脚本中的函数(需配合 WScript 的事件处理机制)。
    • 示例
      Set objNetwork = WScript.CreateObject("WScript.Network")
      WScript.ConnectObject objNetwork, "Network_"  ' 绑定事件前缀
      
      Sub Network_OnComputerNameChanged(newName)
          WScript.Echo "计算机名已更改为: " & newName
      End Sub
      
  7. StdOut / StdErr(仅限 CScript 模式)

    • 作用:在命令行模式(cscript.exe)下重定向输出到控制台,替代 Echo 的对话框模式。
    • 示例
      ' 需通过 cscript 运行
      WScript.StdOut.WriteLine "这是标准输出"
      WScript.StdErr.WriteLine "这是错误输出"
      
  8. SpecialFolders

    • 作用:通过 WScript.Shell 对象的 SpecialFolders 属性访问系统特殊文件夹(如桌面、开始菜单)。
    • 示例
      Set objShell = WScript.CreateObject("WScript.Shell")
      desktopPath = objShell.SpecialFolders("Desktop")  ' 获取桌面路径
      
  9. Environment

    • 作用:通过 WScript.Shell 对象的 Environment 属性管理系统或用户环境变量。
    • 示例
      Set objEnv = objShell.Environment("Process")  ' 获取当前进程环境变量
      objEnv("TEMP") = "C:\CustomTemp"  ' 修改临时目录
      
  10. Run / Exec(通过 WScript.Shell

    • 作用:执行外部程序或命令,Run 简单启动程序,Exec 提供更精细的输入/输出流控制。
    • 示例
      objShell.Run "cmd /c dir", 0, True  ' 隐藏窗口执行命令并等待完成
      Set objExec = objShell.Exec("ping 127.0.0.1")  ' 获取命令输出流
      
posted @ 2025-11-28 15:29  nxhujiee  阅读(0)  评论(0)    收藏  举报