Wscript.Shell对象详细介绍

来源:互联网 发布:linux chown 子目录 编辑:程序博客网 时间:2024/05/02 04:35
WshShell对象
ProgIDWscript.Shell
文件名WSHom.Ocx
CLSIDF935DC22-1CF0-11d0-ADB9-00C04FD58A0B
IIDF935DC21-1CF0-11d0-ADB9-00C04FD58A0B


下表说明和WshShell对象有关的属性。

属性说明
Environment返回WshEnvironment集合对象。
SpecialFolders使用WshSpecialFolders对象提供对Windowsshell文件夹的访问,如桌面文件夹,开始菜单文件夹和个人文档文件夹。


下表说明和WshShell对象有关的方法。

方法说明
CreateShortcut创建并返回WshShortcut对象。
ExpandEnvironmentStrings扩展PROCESS环境变量并返回结果字符串。
Popup显示包含指定消息的消息窗口。
RegDelete从注册表中删除指定的键或值。
RegRead从注册表中返回指定的键或值。
RegWrite在注册表中设置指定的键或值。
Run创建新的进程,该进程用指定的窗口样式执行指定的命令。


WshShell.Environment
Environment属性返回WshEnvironment对象。

语法
WshShell.Environment([strType])=objWshEnvironment

注释
若strType指定了环境变量所处的位置,可能值为"System"、"User"、"Volatile"和"Process"。若未提供strType,则该方法在WindowsNT中检索系统环境变量或在Windows95中检索进程环境变量。

对于Windows95,strType参数仅支持"Process"。

下列变量是由Windows操作系统提供的。脚本也可获取由其他应用程序设置的环境变量。

名称说明
NUMBER_OF_PROCESSORS计算机上运行的处理器数目。
PROCESSOR_ARCHITECTURE用户工作站使用的处理器类型。
PROCESSOR_IDENTIFIER用户工作站的处理器ID。
PROCESSOR_LEVEL用户工作站的处理器级。
PROCESSOR_REVISION用户工作站的处理器版本。
OS用户工作站所用的操作系统。
COMSPEC用于运行“命令提示”窗口的命令(通常为cmd.exe)。
HOMEDRIVE本地主驱动器(通常为C驱动器)。
HOMEPATH用户的默认路径(在WindowsNT上通常为/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)。用户可更改。


示例
'RetrievetheNUMBER_OF_PROCESSORSsystemenvironmentvariable
SetWshShell=Wscript.CreateObject("Wscript.Shell")

SetWshSysEnv=WshShell.Environment("SYSTEM")
Wscript.EchoWshSysEnv("NUMBER_OF_PROCESSORS")

请参阅
WshEnvironment对象


WshEnvironment对象
WshEnvironment对象未直接给出,可用WshShell.Environment属性来访问。

ProgIDN/A
文件名WSHom.Ocx
CLSID
IID


下表描述与WshEnvironment对象关联的属性。

属性说明
Item获取或设置指定的环境变量值。
Count枚举项的数目。
length枚举项的数目(JScript)。


下表描述与WshEnvironment对象关联的方法。

方法说明
Remove删除指定的环境变量。


WshShell.SpecialFolders
SpecialFolders属性提供WshSpecialFolders对象以便访问Windows的shell文件夹,例如桌面文件夹、开始菜单文件夹和个人文档文件夹。

语法
WshShell.SpecialFolders=objWshSpecialFolders

示例
'Thiscodefragmentshowshowtoaccessthedesktopfolder
SetWshShell=Wscript.CreateObject("Wscript.Shell")
MsgBox"Yourdesktopis"&WshShell.SpecialFolders("Desktop")
请参阅
WshSpecialFolders对象

WshSpecialFolders对象
该对象未直接给出。要得到WshSpecialFolders对象,请使用WshShell.SpecialFolders属性。

ProgIDN/A
文件名WSHom.Ocx
CLSID
IID


下表描述与WshSpecialFolders对象关联的属性。

属性描述
Item指定文件夹的完整路径(默认)。
Count枚举项的数目。
length枚举项的数目(JScript)。

WshSpecialFolders.Item
Item属性返回由strFolderName指定的文件夹的完整路径。它是默认属性。

语法
WshShell.SpecialFolders.Item("strFolderName")=strFolderPath
WshShell.SpecialFolders("strFolderName")=strFolderPath

注释
若请求的文件夹(strFolderName)不可用,则WshShell.SpecialFolders("strFolderName")返回NULL。例如,Windows95没有AllUsersDesktop文件夹,如果strFolderName=AllUsersDesktop,则返回NULL。

Windows95和WindowsNT4.0操作系统提供下列指定文件夹:
AllUsersDesktop
AllUsersStartMenu

AllUsersPrograms

AllUsersStartup

Desktop

Favorites

Fonts

MyDocuments

NetHood

PrintHood

Programs

Recent

SendTo

StartMenu

Startup

Templates

示例
'ThisfragmentreturnsthefullpathfortheWindowsDesktopfolder
SetWshShell=Wscript.CreateObject("Wscript.Shell")
StrMyDesktop=WshShell.SpecialFolders("Desktop")

'Listallspecialfolders
ForEachstrFolderInWshShell.SpecialFolders
MsgBoxstrFolder
Next

请参阅
WshShell.SpecialFolders属性


WshShell.CreateShortcut
CreateShortcut方法创建WshShortcut对象并将其返回。如果快捷方式标题以.url结尾,就会创建WshURLShortcut对象。

语法
WshShell.CreateShortcut(strPathname)=objShortcut

示例
'Thiscodefragmentcreatesashortcut
'tothecurrentlyexecutingscript
SetWshShell=Wscript.CreateObject("Wscript.Shell")
SetoShellLink=WshShell.CreateShortcut("CurrentScript.lnk")
oShellLink.TargetPath=Wscript.ScriptFullName
oShellLink.Save
SetoUrlLink=WshShell.CreateShortcut("MicrosoftWebSite.URL")
oUrlLink.TargetPath="http://www.microsoft.com"
oUrlLink.Save

请参阅
WshShortcut对象、WshUrlShortcut对象

WshShortcut对象
该对象未直接给出。要获得WshShortcut对象,请使用WshShell.CreateShortcut方法。

ProgIDN/A
文件名WSHom.Ocx
CLSIDF935DC28-1CF0-11d0-ADB9-00C04FD58A0B
IIDF935DC27-1CF0-11d0-ADB9-00C04FD58A0B


下表说明和WshShortcut对象有关的属性。

属性说明
Arguments快捷方式对象的参数。
Description快捷方式对象的说明。
Hotkey快捷方式对象的热键。
IconLocation快捷方式对象的图标位置。
TargetPath快捷方式对象的目标路径。
WindowStyle快捷方式对象的窗口样式。
WorkingDirectory快捷方式对象的工作目录。


下表说明与WshShortcut对象有关的方法。

方法说明
Save将快捷方式存储到指定的文件系统中。

WshShortcut.Arguments
Arguments属性提供快捷方式对象的参数。

语法
WshShortcut.Arguments=strArguments

WshShortcut.Description
Description属性提供快捷方式对象的说明。

语法
WshShortcut.Description=strDescription

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、PRINTSCREEN或BACKSPACE,即使WshShortcut.Hotkey遵循Win32API支持它们。因此,建议在快捷方式中不要用这些键。

示例
SetWshShell=Wscript.CreateObject("Wscript.WshShell")
strDesktop=WshShell.SpecialFolders("Desktop")
SetoMyShortcut=WshShell.CreateShortcut(strDesktop&"/a_key.lnk")
OMyShortcut.TargetPath="windir/notepad.exe"
oMyShortCut.Hotkey="ALT CTRL F"
oMyShortCut.Save
Wscript.EchooMyShortCut.HotKey="Alt Ctrl F"

请参阅
WshSpecialFolders对象

WshShortcut.IconLocation
IconLocation属性提供快捷方式对象的图标位置。图标位置的格式应为"Path,index"。

语法
WshShortcut.IconLocation=strIconLocation

WshShortcut.TargetPath
TargetPath属性提供快捷方式对象的目标路径。

语法
WshShortcut.TargetPath=strTargetPath

WshShortcut.WindowStyle
WindowStyle属性提供快捷方式对象的窗口样式。

语法
WshShortcut.WindowStyle=natWindowStyle

WshShortcut.WorkingDirectory
WorkingDirectory为一个快捷方式对象提供工作目录。

语法
WshShortcut.WorkingDirectory=strWorkingDirectory

WshShortcut.Save
Save方法把快捷方式对象保存到由FullName属性指定的位置。

语法
WshShortcut.Save

WshUrlShortcut对象
该对象未直接给出。要获取WshUrlShortcut对象,可使用WshShell.CreateShortcut方法。

ProgIDN/A
文件名WSHom.Ocx
CLSID
IID


下表说明了和WshUrlShortcut对象有关的属性。

属性说明
FullNameURL快捷方式对象的完整路径。
TargetPathURL快捷方式对象的目标路径。


下表说明了和WshUrlShortcut对象有关的方法。

方法说明
Save将快捷方式保存到指定的文件系统中。

WshUrlShortcut.FullName
FullName属性提供快捷方式对象的完整路径。

语法
WshUrlShortcut.FullName=strFullName

WshUrlShortcut.TargetPath
TargetPath属性提供快捷方式对象的目标路径。

语法
WshUrlShortcut.TargetPath=strTargetPath

WshUrlShortcut.Save
Save方法保存一个快捷方式,该快捷方式指向FullName属性指定的位置。

语法
WshUrlShortcut.Save

WshShell.ExpandEnvironmentStrings
ExpandEnvironmentStrings方法在strString中扩展PROCESS环境变量并返回结果字符串。变量被''字符括起。

环境变量不区分大小写。

语法
WshShell.ExpandEnvironmentStrings(strString)=strExpandedString

示例
MsgBox"Promptis"&WshShell.ExpandEnviromentStrings("PROMPT")



WshShell.Popup
Popup方法显示一个弹出式消息框窗口,消息框中包含的消息由strText指定。该消息框的窗口标题由strTitle指定。若strTitle省略,则窗口标题为WindowsScriptingHost。

语法
WshShell.Popup(strText,[natSecondsToWait],[strTitle],[natType])=intButton

注释
若提供natSecondsToWait且其值大于零,则消息框在natSecondsToWait秒后关闭。

natType的含义与其在Win32?MessageBox函数中相同。下表显示natType中的值及含义。下表中的值可以组合。

按钮类型
值说明
0显示“确定”按钮
1显示“确定”和“取消”按钮
2显示“终止”、“重试”和“忽略”按钮
3显示“是”、“否”和“取消”按钮
4显示“是”和“否”按钮
5显示“重试”和“取消”按钮


图标类型
值说明
16显示停止标记图标
32显示问号图标
48显示感叹号图标
64显示信息标记图标


以上两个表并不涵盖natType的所有值。完整的列表请参阅Win32文档。

返回值intButton指示用户所单击的按扭编号。若用户在natSecondsToWait秒之前不单击按扭,则intButton设置为-1。

值说明
1“确定”按扭
2“取消”按扭
3“终止”按扭
4“重试”按扭
5“忽略”按扭
6“是”按扭
7“否”按扭


示例
SetWshShell=Wscript.CreateObject("Wscript.Shell")
WshShell.Popup"Wheredoyouwanttogotoday?"

请参阅
Wscript.Echo方法

Wscript.Echo
Echo方法在窗口(Wscript.exe中)或“命令提示符”窗口(Cscript.exe中)显示参数。

参数用空格分隔。在Cscript.exe中,该方法在显示最后一个参数之后输出一对回车/换行(CRLF)。

语法
Wscript.Echo[anyArg...]

示例
Wscript.Echo
Wscript.Echo1,2,3
Wscript.Echo"WindowsScriptingHostiscool."

WshShell.RegDelete
RegDelete从注册表中删除名为strName的键或值。

语法
WshShell.RegDeletestrName

参数
strName
如果strName以反斜杠(/)结束,则该方法删除键而不是值。
strName参数必须以下列之一的根键名开始:

短根键名长根键名
HKCUHKEY_CURRENT_USER
HKLMHKEY_LOCAL_MACHINE
HKCRHKEY_CLASSES_ROOT
HKEY_USERS
HKEY_CURRENT_CONFIG


示例
SetWshShell=Wscript.CreateObject("Wscript.Shell")

WshShell.RegDelete"HKCU/ScriptEngine/Value"'Deletevalue"Value"
WshShell.RegDelete"HKCU/ScriptEngine/Key/"'Deletekey"Key"

请参阅
WshShell.RegRead方法、WshShell.RegWrite方法


WshShell.RegRead
RegRead方法返回名为strName的注册表键或值。

语法
WshShell.RegRead(strName)=strValue

参数
strName
如果strName以反斜杠(/)结束,则该方法返回键,而不是值。
strName参数必须以下列根键名开始。

ShortLong
HKCUHKEY_CURRENT_USER
HKLMHKEY_LOCAL_MACHINE
HKCRHKEY_CLASSES_ROOT
HKEY_USERS
HKEY_CURRENT_CONFIG


注释
RegRead方法仅支持REG_SZ、REG_EXPAND_SZ、REG_DWORD、REG_BINARY和REG_MULTI_SZ数据类型。若注册表有其他数据类型,RegRead返回DISP_E_TYPEMISMATCH。

示例
SetWshShell=Wscript.CreateObject("Wscript.Shell")

WshShell.RegRead("HKCU/ScriptEngine/Val")'Readfromvalue"Val"
WshShell.RegRead("HKCU/ScriptEngine/Key/")'Readfromkey"Key"

请参阅
WshShell.RegDelete方法、WshShell.RegWrite方法


WshShell.RegWrite
RegWrite方法设置名为strName的注册表键或值。

语法
WshShell.RegWritestrName,anyValue,[strType]

参数
strName
若strName以一个反斜杠(/)结束,则该方法设置键,而不是值。
strName参数必须以下列根键名开头。

ShortLong
HKCUHKEY_CURRENT_USER
HKLMHKEY_LOCAL_MACHINE
HKCRHKEY_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。
示例
SetWshShell=Wscript.CreateObject("Wscript.Shell")

WshShell.RegWrite"HKCU/ScriptEngine/Value","Somestringvalue"
WshShell.RegWrite"HKCU/ScriptEngine/Key/",1"REG_DWORD"

请参阅
WshShell.RegDelete方法、WshShell.RegWrite方法


WshShell.Run
Run方法创建一个新的进程,该进程以intWindowStyle窗口样式执行strCommand。

语法
WshShell.Run(strCommand,[intWindowStyle],[blnWaitOnReturn])

参数
strCommand
在strCommand参数内部的环境变量被自动扩展。

intWindowStyle
这是为新进程在STARTUPINFO结构内设置的wShowWindow元素的值。其意义与ShowWindow中的nCmdShow参数相同,可取以下值之一。名称值含义
SW_HIDE
0隐藏窗口并激活另一窗口。
SW_MINIMIZE
6最小化指定窗口并激活按Z序排序的下一个顶层窗口。
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)。

示例
'ThisfragmentlaunchesNotepadwiththecurrentexecutedscript
SetWshShell=Wscript.CreateObject("Wscript.Shell")
WshShell.Run("notepad"&Wscript.ScriptFullName)
WshShell.Run("windir/notepad"&Wscript.ScriptFullName)

'Thisfragmentreturnstheerrorcodefromtheexecutedapplication
Return=WshShell.Run("notepad"&Wscript.ScriptFullName,1,TRUE)