沟通空间吧 关注:9贴子:202
  • 6回复贴,共1

WSH Script Shell对象及方法教程

收藏回复

  • 60.18.100.*
WSH Script Shell对象及方法教程
 
一、 WSH Script Shell对象  
二、 WSH Script Shell对象有关的属性方法  
1. Shell.Environment
2. Shell.WshEnvironment
3. Shell.SpecialFolders
4. Shell.WshSpecialFolders
5. Shell.CreateShortcut
6. Shell.WshShortcut
7. Shell.WshShortcut.Arguments
8. Shell.WshShortcut.Description
9. Shell.WshShortcut.Hotkey
10. Shell.WshShortcut.IconLocation
11. Shell.WshShortcut.TargetPath
12. Shell.WshShortcut.WindowStyle
13. Shell.WshShortcut.WorkingDirectory
14. Shell.WshShortcut.Save
15. Shell.WshUrlShortcut
16. Shell.WshUrlShortcut.FullName
17. Shell.WshUrlShortcut.TargetPath
18. Shell.WshUrlShortcut.Save
19. Shell.ExpandEnvironmentStrings
20. Shell.Popup
21. Shell.RegDelete
22. Shell.RegRead
23. Shell.RegWrite
24. Shell.Run 12
三、 Wscript.Echo 方法
------------------------------------
一、 WSH Script Shell对象 
ProgID  Wscript.Shell 
文件名  WSHom.Ocx 
CLSID F935DC22-1CF0-11d0-ADB9-00C04FD58A0B 
IID F935DC21-1CF0-11d0-ADB9-00C04FD58A0B 
Set Shell=CreateObject(Wscript.Shell)
下表说明和 Wscript Shell 对象有关的属性。 
属性  说明 
Environment  返回 WshEnvironment 集合对象。 
SpecialFolders  使用 WshSpecialFolders 对象提供对 Windows shell 文件夹 的访问,如桌面文件夹,开始菜单文件夹和个人文档文件夹。 
下表说明和 Wscript Shell 对象有关的方法。 
方法  说明 
CreateShortcut  创建并返回 WshShortcut 对象。 
ExpandEnvironmentStrings 扩展 PROCESS 环境变量并返回结果字符串。 
Popup  显示包含指定消息的消息窗口。 
RegDelete  从注册表中删除指定的键或值。 
RegRead  从注册表中返回指定的键或值。 
RegWrite  在注册表中设置指定的键或值。 
Run  创建新的进程,该进程用指定的窗口样式执行指定的命令。 
二、 WSH Script Shell对象有关的属性方法
1. Shell.Environment 
Environment 属性返回 WshEnvironment 对象。 
语法 
Shell.Environment ( [strType]) = objWshEnvironment 
注释 
若 strType 指定了环境变量所处的位置,可能值为 "System"、"User"、"Volatile" 和 "Process"。若未提供 strType,则该方法在 Windows NT 中检索系统环境变量或在 Windows 95 中检索进程环境变量。 
对于 Windows 95,strType 参数仅支持 "Process"。 
下列变量是由 Windows 操作系统提供的。脚本也可获取由其他应用程序设置的环境变量。 
环境变量
NUMBER_OF_PROCESSORS  计算机上运行的处理器数目。 
PROCESSOR_ARCHITECTURE 用户工作站使用的处理器类型。 



1楼2009-11-04 11:41回复
    • 60.18.100.*
    PROCESSOR_IDENTIFIER  用户工作站的处理器 ID。 
    PROCESSOR_LEVEL  用户工作站的处理器级。 
    PROCESSOR_REVISION  用户工作站的处理器版本。 
    OS  用户工作站所用的操作系统。 
    COMSPEC  用于运行“命令提示”窗口的命令(通常为 cmd.exe)。 
    HOMEDRIVE 本地主驱动器(通常为 C 驱动器)。 
    HOMEPATH  用户的默认路径(在 Windows NT 上通常为 \users\default)。 
    PATH  路径环境变量。 
    PATHEXT 可执行文件的扩展名(通常为 .com、 .exe、.bat 或 .cmd)。 
    PROMPT  命令提示符(通常为 $P$G)。 
    SYSTEMDRIVE 系统所在的本地驱动器(例如,c:\)。 
    SYSTEMROOT  系统目录(例如,c:\winnt)。和 WINDIR 相同。 
    WINDIR  系统目录(例如 c:\winnt)。和 SYSTEMROOT 相同。 
    TEMP  存储临时文件的目录(例如,c:\temp)。用户可更改。 
    TMP  存储临时文件的目录(例如,c:\temp)。用户可更改。 
    示例 
    ' Retrieve the NUMBER_OF_PROCESSORS system environment variable 
    Set Shelll = Wscript.CreateObject("Wscript.Shell") 
    Set WshSysEnv = Shell.Environment("SYSTEM") 
    Wscript.Echo WshSysEnv("NUMBER_OF_PROCESSORS") 
    请参阅 
    WshEnvironment 对象 
    2. Shell.WshEnvironment 
    WshEnvironment 对象未直接给出,可用 Shell.Environment 属性来访问。 
    ProgID N/A 
    文件名 WSHom.Ocx 
    CLSID 
    IID 
    下表描述与 WshEnvironment 对象关联的属性。 
    属性  说明 
    Item  获取或设置指定的环境变量值。 
    Count  枚举项的数目。 
    length  枚举项的数目 (JScript)。 
    下表描述与 WshEnvironment 对象关联的方法。 
    方法  说明 
    Remove  删除指定的环境变量。 
    3. Shell.SpecialFolders 
    SpecialFolders 属性提供 WshSpecialFolders 对象以便访问 Windows 的 shell 文件夹,例如桌面文件夹、开始菜单文件夹和个人文档文件夹。 
    语法 
    Shell.SpecialFolders = objWshSpecialFolders 
    示例 
    ' This code fragment shows how to access the desktop folder 
    Set Shelll = Wscript.CreateObject("Wscript.Shell") 
    MsgBox "Your desktop is " & Shell.SpecialFolders("Desktop") 
    请参阅 
    WshSpecialFolders 对象 
    4. Shell.WshSpecialFolders 
    该对象未直接给出。要得到 WshSpecialFolders 对象,请使用 Shell.SpecialFolders 属性。 
    ProgID N/A 
    文件名 WSHom.Ocx 
    CLSID 
    IID 
    下表描述与 WshSpecialFolders 对象关联的属性。 
    


    2楼2009-11-04 11:41
    回复
      广告
      立即查看
      • 60.18.100.*
      属性  描述 
      Item  指定文件夹的完整路径(默认)。 
      Count  枚举项的数目。 
      length  枚举项的数目 (JScript) 。 
      5. Shell.WshSpecialFolders.Item 
      Item 属性返回由 strFolderName 指定的文件夹的完整路径。它是默认属性。 
      语法 
      Shell.SpecialFolders.Item("strFolderName") = strFolderPath 
      Shell.SpecialFolders("strFolderName") = strFolderPath 
      注释 
      若请求的文件夹 (strFolderName) 不可用,则 Shell.SpecialFolders("strFolderName") 返回 NULL。例如,Windows 95 没有 AllUsersDesktop 文件夹,如果 strFolderName = AllUsersDesktop,则返回 NULL。 
      Windows 95 和 Windows NT 4.0 操作系统提供下列指定文件夹: 
      AllUsersDesktop 
      AllUsersStartMenu 
      AllUsersPrograms 
      AllUsersStartup 
      Desktop 
      Favorites 
      Fonts 
      MyDocuments 
      NetHood 
      PrintHood 
      Programs 
      Recent 
      SendTo 
      StartMenu 
      Startup 
      Templates 
      示例 
      ' This fragment returns the full path for the Windows Desktop folder 
      Set Shelll = Wscript.CreateObject("Wscript.Shell") 
      StrMyDesktop = Shell.SpecialFolders("Desktop") 
      ' List all special folders 
      For Each strFolder In Shell.SpecialFolders 
      MsgBox strFolder 
      Next 
      请参阅 
      Shell.SpecialFolders 属性 
      6. Shell.CreateShortcut 
      CreateShortcut 方法创建 WshShortcut 对象并将其返回。如果快捷方式标题以 .url 结尾,就会创建 WshURLShortcut 对象。 
      语法 
      Shell.CreateShortcut(strPathname) = objShortcut 
      示例 
      ' This code fragment creates a shortcut 
      ' to the currently executing script 
      Set Shelll = Wscript.CreateObject("Wscript.Shell") 
      Set Shell.Link = Shell.CreateShortcut("Current Script.lnk") 
      Shell.Link.TargetPath = Wscript.ScriptFullName 
      Shell.Link.Save 
      Set oUrlLink = Shell.CreateShortcut("Microsoft Web Site.URL") 
      oUrlLink.TargetPath = "http://www.microsoft.com
      oUrlLink.Save 
      请参阅 
      WshShortcut 对象、WshUrlShortcut 对象 
      7. Shell.WshShortcut 
      该对象未直接给出。要获得 WshShortcut 对象,请使用 Shell.CreateShortcut 方法。 
      ProgID N/A 
      文件名 WSHom.Ocx 
      CLSID F935DC28-1CF0-11d0-ADB9-00C04FD58A0B 
      


      3楼2009-11-04 11:41
      回复
        • 60.18.100.*
        IID F935DC27-1CF0-11d0-ADB9-00C04FD58A0B 
        下表说明和 WshShortcut 对象有关的属性。 
        属性  说明 
        Arguments  快捷方式对象的参数。 
        Description  快捷方式对象的说明。 
        Hotkey  快捷方式对象的热键。 
        IconLocation  快捷方式对象的图标位置。 
        TargetPath  快捷方式对象的目标路径。 
        WindowStyle  快捷方式对象的窗口样式。 
        WorkingDirectory  快捷方式对象的工作目录。 
        下表说明与 WshShortcut 对象有关的方法。 
        方法  说明 
        Save  将快捷方式存储到指定的文件系统中。 
        8. Shell.WshShortcut.Arguments 
        Arguments 属性提供快捷方式对象的参数。 
        语法 
        WshShortcut.Arguments = strArguments 
        9. Shell.WshShortcut.Description 
        Description 属性提供快捷方式对象的说明。 
        语法 
        WshShortcut.Description = strDescription 
        10. Shell.WshShortcut.Hotkey 
        HotKey 属性提供快捷方式对象的热键。热键是启动或切换程序的键盘快捷方式。 
        语法 
        WshShortcut.HotKey = strHotKey 
        注释 
        strHotKey 的BNF
        语法如下: 
        Hotkey ::= modifier* keyname 
        modifier ::= "ALT+" | "CTRL+" | "SHIFT+" | "EXT+" 
        keyname ::= "A" .. "Z" | 
        "0".. "9" | 
        "Back" | "Tab" | "Clear" | "Return" | 
        "Escape" | "Space" | "Prior" | ... 
        所有键的名称都可以在 WINUSER.H 中找到。热键不区分大小写。 
        热键只能激活位于 Windows 桌面或 Windows“开始”菜单的快捷方式。 
        Windows 资源管理器不接受 ESC、ENTER、TAB、SPACE、PRINT SCREEN 或 BACKSPACE,即使 WshShortcut.Hotkey 遵循 Win32 API 支持它们。因此,建议在快捷方式中不要用这些键。 
        示例 
        Set Shelll = Wscript.CreateObject("Wscript.Shelll") 
        strDesktop = Shell.SpecialFolders("Desktop") 
        Set oMyShortcut = Shell.CreateShortcut(strDesktop & "\a_key.lnk") 
        OMyShortcut.TargetPath = "%windir%\notepad.exe" 
        oMyShortCut.Hotkey = "ALT+CTRL+F" 
        oMyShortCut.Save 
        Wscript.Echo oMyShortCut.HotKey = "Alt+Ctrl+F" 
        请参阅 
        WshSpecialFolders 对象 
        11. Shell.WshShortcut.IconLocation 
        IconLocation 属性提供快捷方式对象的图标位置。图标位置的格式应为 "Path,index"。 
        语法 
        WshShortcut.IconLocation = strIconLocation 
        12. Shell.WshShortcut.TargetPath 
        


        4楼2009-11-04 11:41
        回复
          • 60.18.100.*
          TargetPath 属性提供快捷方式对象的目标路径。 
          语法 
          WshShortcut.TargetPath = strTargetPath 
          13. Shell.WshShortcut.WindowStyle 
          WindowStyle 属性提供快捷方式对象的窗口样式。 
          语法 
          WshShortcut.WindowStyle = natWindowStyle 
          14. Shell.WshShortcut.WorkingDirectory 
          WorkingDirectory 为一个快捷方式对象提供工作目录。 
          语法 
          WshShortcut.WorkingDirectory = strWorkingDirectory 
          15. Shell.WshShortcut.Save 
          Save 方法把快捷方式对象保存到由 FullName 属性指定的位置。 
          语法 
          WshShortcut.Save 
          16. Shell.WshUrlShortcut 
          该对象未直接给出。要获取 WshUrlShortcut 对象,可使用 Shell.CreateShortcut 方法。 
          ProgID N/A 
          文件名 WSHom.Ocx 
          CLSID 
          IID 
          下表说明了和 WshUrlShortcut 对象有关的属性。 
          属性 说明 
          FullName URL  快捷方式对象的完整路径。 
          TargetPath URL  快捷方式对象的目标路径。 
          下表说明了和 WshUrlShortcut 对象有关的方法。 
          方法 说明 
          Save  将快捷方式保存到指定的文件系统中。 
          17. Shell.WshUrlShortcut.FullName 
          FullName 属性提供快捷方式对象的完整路径。 
          语法 
          WshUrlShortcut.FullName = strFullName 
          18. Shell.WshUrlShortcut.TargetPath 
          TargetPath 属性提供快捷方式对象的目标路径。 
          语法 
          WshUrlShortcut.TargetPath = strTargetPath 
          19. Shell.WshUrlShortcut.Save 
          Save 方法保存一个快捷方式,该快捷方式指向 FullName 属性指定的位置。 
          语法 
          WshUrlShortcut.Save 
          20. Shell.ExpandEnvironmentStrings 
          ExpandEnvironmentStrings 方法在 strString 中扩展 PROCESS 环境变量并返回结果字符串。变量被 '%' 字符括起。 
          环境变量不区分大小写。 
          语法 
          Shell.ExpandEnvironmentStrings(strString) = strExpandedString 
          示例 
          MsgBox "Prompt is " & Shell.ExpandEnviromentStrings("%PROMPT%") 
          21. Shell.Popup 
          Popup 方法显示一个弹出式消息框窗口,消息框中包含的消息由 strText 指定。该消息框的窗口标题由 strTitle 指定。若 strTitle 省略,则窗口标题为 Windows Scripting Host。 
          语法 
          Shell.Popup(strText, [natSecondsToWait], [strTitle], [natType]) = intButton 
          注释 
          若提供 natSecondsToWait 且其值大于零,则消息框在 natSecondsToWait 秒后关闭。 
          natType 的含义与其在 Win32? MessageBox 函数中相同。下表显示 natType 中的值及含义。下表中的值可以组合。 
          按钮类型 
          值  说明 
          0  显示“确定”按钮 
          1  显示“确定”和“取消”按钮 
          


          5楼2009-11-04 11:41
          回复
            • 60.18.100.*
            2  显示“终止”、“重试”和“忽略”按钮 
            3  显示“是”、“否”和“取消”按钮 
            4  显示“是”和“否”按钮 
            5  显示“重试”和“取消”按钮 
            图标类型 
            值  说明 
            16  显示停止标记图标 
            32  显示问号图标 
            48  显示感叹号图标 
            64  显示信息标记图标 
            以上两个表并不涵盖 natType 的所有值。完整的列表
            请参阅 Win32 文档。 
            返回值 intButton 指示用户所单击的按扭编号。若用户在 natSecondsToWait 秒之前不单击按扭,则 intButton 设置为 -1 。 
            值 说明 
            1  “确定”按扭 
            2  “取消”按扭 
            3  “终止”按扭 
            4  “重试”按扭 
            5  “忽略”按扭 
            6  “是”按扭 
            7  “否”按扭 
            示例 
            Set Shelll = Wscript.CreateObject("Wscript.Shell") 
            Shell.Popup "Where do you want to go today?" 
            请参阅 
            Wscript.Echo 方法 
            22. Shell.RegDelete 
            RegDelete 从注册表中删除名为 strName 的键或值。 
            语法 
            Shell.RegDelete strName 
            参数 
            strName 
            如果 strName 以反斜杠 (\) 结束,则该方法删除键而不是值。 
            strName 参数必须以下列之一的根键名开始: 
            短根键名  长根键名 
            HKCU  HKEY_CURRENT_USER 
            HKLM  HKEY_LOCAL_MACHINE 
            HKCR HKEY_CLASSES_ROOT 
            HKEY_USERS 
            HKEY_CURRENT_CONFIG 
            示例 
            Set Shelll = Wscript.CreateObject("Wscript.Shell") 
            Shell.RegDelete "HKCU\ScriptEngine\value" ' Delete value "value" 
            Shell.RegDelete "HKCU\ScriptEngine\Key\" ' Delete key "Key" 
            请参阅 
            Shell.RegRead 方法、Shell.RegWrite 方法 
            23. Shell.RegRead 
            RegRead 方法返回名为 strName 的注册表键或值。 
            语法 
            Shell.RegRead(strName) = strvalue 
            参数 
            strName 
            如果 strName 以反斜杠 (\) 结束,则该方法返回键,而不是值。 
            strName 参数必须以下列根键名开始。 
            Short  Long 
            HKCU  HKEY_CURRENT_USER 
            HKLM  HKEY_LOCAL_MACHINE 
            HKCR  HKEY_CLASSES_ROOT 
            HKEY_USERS 
            HKEY_CURRENT_CONFIG 
            注释 
            RegRead 方法仅支持 REG_SZ、REG_EXPAND_SZ、REG_DWORD、REG_BINARY 和 REG_MULTI_SZ 数据类型。若注册表有其他数据类型,RegRead 返回 DISP_E_TYPEMISMATCH。 
            示例 
            Set Shelll = Wscript.CreateObject("Wscript.Shell") 
            Shell.RegRead("HKCU\ScriptEngine\Val") ' Read from value "Val" 
            


            6楼2009-11-04 11:41
            回复
              • 60.18.100.*
              Shell.RegRead("HKCU\ScriptEngine\Key\") ' Read from key "Key" 
              请参阅 
              Shell.RegDelete 方法、Shell.RegWrite 方法 
              24. Shell.RegWrite 
              RegWrite 方法设置名为 strName 的注册表键或值。 
              语法 
              Shell.RegWrite strName, anyvalue, [strType] 
              参数 
              strName 
              若 strName 以一个反斜杠 (\) 结束,则该方法设置键,而不是值。 
              strName 参数必须以下列根键名开头。 
              Short  Long 
              HKCU  HKEY_CURRENT_USER 
              HKLM  HKEY_LOCAL_MACHINE 
              HKCR HKEY_CLASSES_ROOT 
              HKEY_USERS 
              HKEY_CURRENT_CONFIG 
              anyvalue 
              当 strType 为 REG_SZ 或 REG_EXPAND_SZ 时,RegWrite 方法自动将 anyvalue 转换为字符串。若 strType 为 REG_DWORD,则 anyvalue 被转换为整数。若 strType 为 REG_BINARY,则 anyvalue 必须是一个整数。 
              strType 
              RegWrite 方法支持 strType 为 REG_SZ、REG_EXPAND_SZ、REG_DWORD 和 REG_BINARY。若其他的数据类型被作为 strType 传递,RegWrite 返回 E_INVALIDARG。 
              示例 
              Set Shelll = Wscript.CreateObject("Wscript.Shell") 
              Shell.RegWrite "HKCU\ScriptEngine\value", "Some string value" 
              Shell.RegWrite "HKCU\ScriptEngine\Key\", 1 "REG_DWORD" 
              请参阅 
              Shell.RegDelete 方法、Shell.RegWrite方法 
              25. Shell.Run 
              Run 方法创建一个新的进程,该进程以 intWindowStyle 窗口样式执行 strCommand。 
              语法 
              Shell.Run (strCommand, [intWindowStyle], [blnWaitOnReturn]) 
              参数 
              strCommand 
              在 strCommand 参数内部的环境变量被自动扩展。 
              intWindowStyle 
              这是为新进程在 STARTUPINFO 结构内设置的 wShowWindow 元素的值。其意义与 ShowWindow 中的 nCmdShow 参数相同,可取以下值之一。
              名称 值 含义
              SW_HIDE 0 隐藏窗口并激活另一窗口。
              SW_MINIMIZE 6 最小化指定窗口并激活按序排序的下一个顶层窗口。
              SW_RESTORE 9 激活并显示窗口。若窗口是最小化或最大化,则恢复到原来的大小和位置。在还原应用程序的最小化窗口时,应指定该标志。
              SW_SHOW 5 以当前大小和位置激活并显示窗口。
              SW_SHOWMAXIMIZED 3 激活窗口并以最大化显示该窗口。
              SW_SHOWMINIMIZED 2 激活窗口并以最小化显示该窗口。
              SW_SHOWMINNOACTIVE 7 最小化显示窗口。活动窗口保持活动。
              SW_SHOWNA 8 以当前状态显示窗口。活动窗口保持活动。
              SW_SHOWNOACTIVATE 4 按窗口最近的大小和位置显示。活动窗口保持活动。
              SW_SHOWNORMAL 1 激活并显示一个窗口。若窗口是最小化或最大化,则恢复到其原来的大小和位置。
              blnWaitOnReturn 
              如果未指定 blnWaitOnReturn 或其值为 FALSE,则该方法立即返回到脚本继续执行而不等待进程结束。 
              若 blnWaitOnReturn 设为 TRUE,则 Run 方法返回由应用程序返回的任何错误代码。如果未指定 blnWaitOnReturn 或其值为 FALSE,则 Run 返回错误代码 0(zero)。 
              示例 
              ' This fragment launches Notepad with the current executed script 
              Set Shelll = Wscript.CreateObject("Wscript.Shell") 
              Shell.Run ("notepad " & Wscript.ScriptFullName) 
              Shell.Run ("%windir%\notepad" & Wscript.ScriptFullName) 
              ' This fragment returns the error code from the executed application 
              Return = Shell.Run("notepad " & Wscript.ScriptFullName, 1, TRUE) 
              --------------------------------------------------------------------------------
              三、 Wscript.Echo 方法
              Echo 方法在窗口(Wscript.exe 中)或“命令提示符”窗口(Cscript.exe 中)显示参数。 
              参数用空格分隔。在 Cscript.exe 中,该方法在显示最后一个参数之后输出一对回车/换行(CR LF)。 
              语法 
              Wscript.Echo [anyArg...] 
              示例 
              Wscript.Echo 
              Wscript.Echo 1, 2, 3 
              Wscript.Echo "Windows Scripting Host is cool." 
              


              7楼2009-11-04 11:41
              回复