<p>ProgID Wscript.Shell<br />
文件名 WSHom.Ocx<br />
CLSID F935DC22-1CF0-11d0-ADB9-00C04FD58A0B<br />
IID F935DC21-1CF0-11d0-ADB9-00C04FD58A0B<br />
<br />
<br />
下表说明和 WshShell 对象有关的属性。<br />
属性 说明<br />
Environment 返回 WshEnvironment 集合对象。<br />
SpecialFolders 使用 WshSpecialFolders 对象提供对 Windows shell 文件夹的访问,如桌面文件夹,开始菜单文件夹和个人文档文件夹。<br />
<br />
<br />
下表说明和 WshShell 对象有关的方法。<br />
<br />
方法 说明<br />
CreateShortcut 创建并返回 WshShortcut 对象。<br />
ExpandEnvironmentStrings 扩展 PROCESS 环境变量并返回结果字符串。<br />
Popup 显示包含指定消息的消息窗口。<br />
RegDelete 从注册表中删除指定的键或值。<br />
RegRead 从注册表中返回指定的键或值。<br />
RegWrite 在注册表中设置指定的键或值。<br />
Run 创建新的进程,该进程用指定的窗口样式执行指定的命令。<br />
<br />
<br />
WshShell.Environment<br />
Environment 属性返回 WshEnvironment 对象。<br />
<br />
语法<br />
WshShell.Environment ( [strType]) = objWshEnvironment<br />
<br />
注释<br />
若 strType 指定了环境变量所处的位置,可能值为 "System"、"User"、"Volatile" 和 "Process"。若未提供 strType,则该方法在 Windows NT 中检索系统环境变量或在 Windows 95 中检索进程环境变量。<br />
<br />
对于 Windows 95,strType 参数仅支持 "Process"。<br />
<br />
下列变量是由 Windows 操作系统提供的。脚本也可获取由其他应用程序设置的环境变量。<br />
<br />
名称 说明<br />
NUMBER_OF_PROCESSORS 计算机上运行的处理器数目。<br />
PROCESSOR_ARCHITECTURE 用户工作站使用的处理器类型。<br />
PROCESSOR_IDENTIFIER 用户工作站的处理器 ID。<br />
PROCESSOR_LEVEL 用户工作站的处理器级。<br />
PROCESSOR_REVISION 用户工作站的处理器版本。<br />
OS 用户工作站所用的操作系统。<br />
COMSPEC 用于运行“命令提示”窗口的命令(通常为 cmd.exe)。<br />
HOMEDRIVE 本地主驱动器(通常为 C 驱动器)。<br />
HOMEPATH 用户的默认路径(在 Windows NT 上通常为 usersdefault)。<br />
PATH 路径环境变量。<br />
PATHEXT 可执行文件的扩展名(通常为 .com、 .exe、.bat 或 .cmd)。<br />
PROMPT 命令提示符(通常为 $P$G)。<br />
SYSTEMDRIVE 系统所在的本地驱动器(例如,c:)。<br />
SYSTEMROOT 系统目录(例如,c:winnt)。和 WINDIR 相同。<br />
WINDIR 系统目录(例如 c:winnt)。和 SYSTEMROOT 相同。<br />
TEMP 存储临时文件的目录(例如,c:temp)。用户可更改。<br />
TMP 存储临时文件的目录(例如,c:temp)。用户可更改。<br />
<br />
<br />
示例<br />
'' Retrieve the NUMBER_OF_PROCESSORS system environment variable<br />
Set WshShell = Wscript.CreateObject("Wscript.Shell")<br />
<br />
Set WshSysEnv = WshShell.Environment("SYSTEM")<br />
Wscript.Echo WshSysEnv("NUMBER_OF_PROCESSORS")<br />
<br />
请参阅<br />
WshEnvironment 对象<br />
<br />
<br />
WshEnvironment 对象<br />
WshEnvironment 对象未直接给出,可用 WshShell.Environment 属性来访问。<br />
<br />
ProgID N/A<br />
文件名 WSHom.Ocx<br />
CLSID<br />
IID<br />
<br />
<br />
下表描述与 WshEnvironment 对象关联的属性。<br />
<br />
属性 说明<br />
Item 获取或设置指定的环境变量值。<br />
Count 枚举项的数目。<br />
length 枚举项的数目 (JScript)。<br />
<br />
<br />
下表描述与 WshEnvironment 对象关联的方法。<br />
<br />
方法 说明<br />
Remove 删除指定的环境变量。<br />
<br />
<br />
WshShell.SpecialFolders<br />
SpecialFolders 属性提供 WshSpecialFolders 对象以便访问 Windows 的 shell 文件夹,例如桌面文件夹、开始菜单文件夹和个人文档文件夹。<br />
<br />
语法<br />
WshShell.SpecialFolders = objWshSpecialFolders<br />
<br />
示例<br />
'' This code fragment shows how to access the desktop folder<br />
Set WshShell = Wscript.CreateObject("Wscript.Shell")<br />
MsgBox "Your desktop is " & WshShell.SpecialFolders("Desktop")<br />
请参阅<br />
WshSpecialFolders 对象<br />
<br />
WshSpecialFolders 对象<br />
该对象未直接给出。要得到 WshSpecialFolders 对象,请使用 WshShell.SpecialFolders 属性。<br />
<br />
ProgID N/A<br />
文件名 WSHom.Ocx<br />
CLSID<br />
IID<br />
<br />
<br />
下表描述与 WshSpecialFolders 对象关联的属性。<br />
<br />
属性 描述<br />
Item 指定文件夹的完整路径(默认)。<br />
Count 枚举项的数目。<br />
length 枚举项的数目 (JScript) 。<br />
<br />
WshSpecialFolders.Item<br />
Item 属性返回由 strFolderName 指定的文件夹的完整路径。它是默认属性。<br />
<br />
语法<br />
WshShell.SpecialFolders.Item("strFolderName") = strFolderPath<br />
WshShell.SpecialFolders("strFolderName") = strFolderPath<br />
<br />
注释<br />
若请求的文件夹 (strFolderName) 不可用,则 WshShell.SpecialFolders("strFolderName") 返回 NULL。例如,Windows 95 没有 AllUsersDesktop 文件夹,如果 strFolderName = AllUsersDesktop,则返回 NULL。<br />
<br />
Windows 95 和 Windows NT 4.0 操作系统提供下列指定文件夹:<br />
AllUsersDesktop<br />
AllUsersStartMenu<br />
<br />
AllUsersPrograms<br />
<br />
AllUsersStartup<br />
<br />
Desktop<br />
<br />
Favorites<br />
<br />
Fonts<br />
<br />
MyDocuments<br />
<br />
NetHood<br />
<br />
PrintHood<br />
<br />
Programs<br />
<br />
Recent<br />
<br />
SendTo<br />
<br />
StartMenu<br />
<br />
Startup<br />
<br />
Templates<br />
<br />
示例<br />
'' This fragment returns the full path for the Windows Desktop folder<br />
Set WshShell = Wscript.CreateObject("Wscript.Shell")<br />
StrMyDesktop = WshShell.SpecialFolders("Desktop")<br />
<br />
'' List all special folders<br />
For Each strFolder In WshShell.SpecialFolders<br />
MsgBox strFolder<br />
Next<br />
<br />
请参阅<br />
WshShell.SpecialFolders 属性<br />
<br />
<br />
WshShell.CreateShortcut<br />
CreateShortcut 方法创建 WshShortcut 对象并将其返回。如果快捷方式标题以 .url 结尾,就会创建 WshURLShortcut 对象。<br />
<br />
语法<br />
WshShell.CreateShortcut(strPathname) = objShortcut<br />
<br />
示例<br />
'' This code fragment creates a shortcut<br />
'' to the currently executing script<br />
Set WshShell = Wscript.CreateObject("Wscript.Shell")<br />
Set oShellLink = WshShell.CreateShortcut("Current Script.lnk")<br />
oShellLink.TargetPath = Wscript.ScriptFullName<br />
oShellLink.Save<br />
Set oUrlLink = WshShell.CreateShortcut("Microsoft Web Site.URL")<br />
oUrlLink.TargetPath = "http://www.microsoft.com"<br />
oUrlLink.Save<br />
<br />
请参阅<br />
WshShortcut 对象、WshUrlShortcut 对象<br />
<br />
WshShortcut 对象<br />
该对象未直接给出。要获得 WshShortcut 对象,请使用 WshShell.CreateShortcut 方法。<br />
<br />
ProgID N/A<br />
文件名 WSHom.Ocx<br />
CLSID F935DC28-1CF0-11d0-ADB9-00C04FD58A0B<br />
IID F935DC27-1CF0-11d0-ADB9-00C04FD58A0B<br />
<br />
<br />
下表说明和 WshShortcut 对象有关的属性。<br />
<br />
属性 说明<br />
Arguments 快捷方式对象的参数。<br />
Description 快捷方式对象的说明。<br />
Hotkey 快捷方式对象的热键。<br />
IconLocation 快捷方式对象的图标位置。<br />
TargetPath 快捷方式对象的目标路径。<br />
WindowStyle 快捷方式对象的窗口样式。<br />
WorkingDirectory 快捷方式对象的工作目录。<br />
<br />
<br />
下表说明与 WshShortcut 对象有关的方法。<br />
<br />
方法 说明<br />
Save 将快捷方式存储到指定的文件系统中。<br />
<br />
WshShortcut.Arguments<br />
Arguments 属性提供快捷方式对象的参数。<br />
<br />
语法<br />
WshShortcut.Arguments = strArguments<br />
<br />
WshShortcut.Description<br />
Description 属性提供快捷方式对象的说明。<br />
<br />
语法<br />
WshShortcut.Description = strDescription<br />
<br />
WshShortcut.Hotkey<br />
HotKey 属性提供快捷方式对象的热键。热键是启动或切换程序的键盘快捷方式。<br />
<br />
语法<br />
WshShortcut.HotKey = strHotKey<br />
<br />
注释<br />
strHotKey 的BNF语法如下:<br />
<br />
Hotkey ::= modifier* keyname<br />
modifier ::= "ALT+" | "CTRL+" | "SHIFT+" | "EXT+"<br />
keyname ::= "A" .. "Z" |<br />
"0".. "9" |<br />
"Back" | "Tab" | "Clear" | "Return" |<br />
"Escape" | "Space" | "Prior" | ...<br />
<br />
所有键的名称都可以在 WINUSER.H 中找到。热键不区分大小写。<br />
<br />
热键只能激活位于 Windows 桌面或 Windows“开始”菜单的快捷方式。<br />
<br />
Windows 资源管理器不接受 ESC、ENTER、TAB、SPACE、PRINT SCREEN 或 BACKSPACE,即使 WshShortcut.Hotkey 遵循 Win32 API 支持它们。因此,建议在快捷方式中不要用这些键。<br />
<br />
示例<br />
Set WshShell = Wscript.CreateObject("Wscript.WshShell")<br />
strDesktop = WshShell.SpecialFolders("Desktop")<br />
Set oMyShortcut = WshShell.CreateShortcut(strDesktop & "a_key.lnk")<br />
OMyShortcut.TargetPath = "%windir%notepad.exe"<br />
oMyShortCut.Hotkey = "ALT+CTRL+F"<br />
oMyShortCut.Save<br />
Wscript.Echo oMyShortCut.HotKey = "Alt+Ctrl+F"<br />
<br />
请参阅<br />
WshSpecialFolders 对象<br />
<br />
WshShortcut.IconLocation<br />
IconLocation 属性提供快捷方式对象的图标位置。图标位置的格式应为 "Path,index"。<br />
<br />
语法<br />
WshShortcut.IconLocation = strIconLocation<br />
<br />
WshShortcut.TargetPath<br />
TargetPath 属性提供快捷方式对象的目标路径。<br />
<br />
语法<br />
WshShortcut.TargetPath = strTargetPath<br />
<br />
WshShortcut.WindowStyle<br />
WindowStyle 属性提供快捷方式对象的窗口样式。<br />
<br />
语法<br />
WshShortcut.WindowStyle = natWindowStyle<br />
<br />
WshShortcut.WorkingDirectory<br />
WorkingDirectory 为一个快捷方式对象提供工作目录。<br />
<br />
语法<br />
WshShortcut.WorkingDirectory = strWorkingDirectory<br />
<br />
WshShortcut.Save<br />
Save 方法把快捷方式对象保存到由 FullName 属性指定的位置。<br />
<br />
语法<br />
WshShortcut.Save<br />
<br />
WshUrlShortcut 对象<br />
该对象未直接给出。要获取 WshUrlShortcut 对象,可使用 WshShell.CreateShortcut 方法。<br />
<br />
ProgID N/A<br />
文件名 WSHom.Ocx<br />
CLSID<br />
IID<br />
<br />
下表说明了和 WshUrlShortcut 对象有关的属性。<br />
<br />
属性 说明<br />
FullName URL 快捷方式对象的完整路径。<br />
TargetPath URL 快捷方式对象的目标路径。<br />
<br />
<br />
下表说明了和 WshUrlShortcut 对象有关的方法。<br />
<br />
方法 说明<br />
Save 将快捷方式保存到指定的文件系统中。<br />
<br />
WshUrlShortcut.FullName<br />
FullName 属性提供快捷方式对象的完整路径。<br />
<br />
语法<br />
WshUrlShortcut.FullName = strFullName<br />
<br />
WshUrlShortcut.TargetPath<br />
TargetPath 属性提供快捷方式对象的目标路径。<br />
<br />
语法<br />
WshUrlShortcut.TargetPath = strTargetPath<br />
<br />
WshUrlShortcut.Save<br />
Save 方法保存一个快捷方式,该快捷方式指向 FullName 属性指定的位置。<br />
<br />
语法<br />
WshUrlShortcut.Save<br />
<br />
WshShell.ExpandEnvironmentStrings<br />
ExpandEnvironmentStrings 方法在 strString 中扩展 PROCESS 环境变量并返回结果字符串。变量被 ''%'' 字符括起。<br />
<br />
环境变量不区分大小写。<br />
<br />
语法<br />
WshShell.ExpandEnvironmentStrings(strString) = strExpandedString<br />
<br />
示例<br />
MsgBox "Prompt is " & WshShell.ExpandEnviromentStrings("%PROMPT%")<br />
<br />
<br />
<br />
WshShell.Popup<br />
Popup 方法显示一个弹出式消息框窗口,消息框中包含的消息由 strText 指定。该消息框的窗口标题由 strTitle 指定。若 strTitle 省略,则窗口标题为 Windows Scripting Host。<br />
<br />
语法<br />
WshShell.Popup(strText, [natSecondsToWait], [strTitle], [natType]) = intButton<br />
<br />
注释<br />
若提供 natSecondsToWait 且其值大于零,则消息框在 natSecondsToWait 秒后关闭。<br />
<br />
natType 的含义与其在 Win32? MessageBox 函数中相同。下表显示 natType 中的值及含义。下表中的值可以组合。<br />
<br />
按钮类型<br />
值 说明<br />
0 显示“确定”按钮<br />
1 显示“确定”和“取消”按钮<br />
2 显示“终止”、“重试”和“忽略”按钮<br />
3 显示“是”、“否”和“取消”按钮<br />
4 显示“是”和“否”按钮<br />
5 显示“重试”和“取消”按钮<br />
<br />
<br />
图标类型<br />
值 说明<br />
16 显示停止标记图标<br />
32 显示问号图标<br />
48 显示感叹号图标<br />
64 显示信息标记图标<br />
<br />
<br />
以上两个表并不涵盖 natType 的所有值。完整的列表请参阅 Win32 文档。<br />
<br />
返回值 intButton 指示用户所单击的按扭编号。若用户在 natSecondsToWait 秒之前不单击按扭,则 intButton 设置为 -1 。<br />
<br />
值 说明<br />
1 “确定”按扭<br />
2 “取消”按扭<br />
3 “终止”按扭<br />
4 “重试”按扭<br />
5 “忽略”按扭<br />
6 “是”按扭<br />
7 “否”按扭<br />
<br />
<br />
示例<br />
Set WshShell = Wscript.CreateObject("Wscript.Shell")<br />
WshShell.Popup "Where do you want to go today?"<br />
<br />
请参阅<br />
Wscript.Echo 方法<br />
<br />
Wscript.Echo<br />
Echo 方法在窗口(Wscript.exe 中)或“命令提示符”窗口(Cscript.exe 中)显示参数。<br />
<br />
参数用空格分隔。在 Cscript.exe 中,该方法在显示最后一个参数之后输出一对回车/换行(CR LF)。<br />
<br />
语法<br />
Wscript.Echo [anyArg...]<br />
<br />
示例<br />
Wscript.Echo<br />
Wscript.Echo 1, 2, 3<br />
Wscript.Echo "Windows Scripting Host is cool."<br />
<br />
WshShell.RegDelete<br />
RegDelete 从注册表中删除名为 strName 的键或值。<br />
<br />
语法<br />
WshShell.RegDelete strName<br />
<br />
参数<br />
strName<br />
如果 strName 以反斜杠 () 结束,则该方法删除键而不是值。<br />
strName 参数必须以下列之一的根键名开始:<br />
<br />
短根键名 长根键名<br />
HKCU HKEY_CURRENT_USER<br />
HKLM HKEY_LOCAL_MACHINE<br />
HKCR HKEY_CLASSES_ROOT<br />
HKEY_USERS<br />
HKEY_CURRENT_CONFIG<br />
<br />
<br />
示例<br />
Set WshShell = Wscript.CreateObject("Wscript.Shell")<br />
<br />
WshShell.RegDelete "HKCUScriptEngineValue" '' Delete value "Value"<br />
WshShell.RegDelete "HKCUScriptEngineKey" '' Delete key "Key"<br />
<br />
请参阅<br />
WshShell.RegRead 方法、WshShell.RegWrite 方法<br />
<br />
<br />
WshShell.RegRead<br />
RegRead 方法返回名为 strName 的注册表键或值。<br />
<br />
语法<br />
WshShell.RegRead(strName) = strValue<br />
<br />
参数<br />
strName<br />
如果 strName 以反斜杠 () 结束,则该方法返回键,而不是值。<br />
strName 参数必须以下列根键名开始。<br />
<br />
Short Long<br />
HKCU HKEY_CURRENT_USER<br />
HKLM HKEY_LOCAL_MACHINE<br />
HKCR HKEY_CLASSES_ROOT<br />
HKEY_USERS<br />
HKEY_CURRENT_CONFIG<br />
<br />
<br />
注释<br />
RegRead 方法仅支持 REG_SZ、REG_EXPAND_SZ、REG_DWORD、REG_BINARY 和 REG_MULTI_SZ 数据类型。若注册表有其他数据类型,RegRead 返回 DISP_E_TYPEMISMATCH。<br />
<br />
示例<br />
Set WshShell = Wscript.CreateObject("Wscript.Shell")<br />
<br />
WshShell.RegRead("HKCUScriptEngineVal") '' Read from value "Val"<br />
WshShell.RegRead("HKCUScriptEngineKey") '' Read from key "Key"<br />
<br />
请参阅<br />
WshShell.RegDelete 方法、WshShell.RegWrite 方法<br />
<br />
<br />
WshShell.RegWrite<br />
RegWrite 方法设置名为 strName 的注册表键或值。<br />
<br />
语法<br />
WshShell.RegWrite strName, anyValue, [strType]<br />
<br />
参数<br />
strName<br />
若 strName 以一个反斜杠 () 结束,则该方法设置键,而不是值。<br />
strName 参数必须以下列根键名开头。<br />
<br />
Short Long<br />
HKCU HKEY_CURRENT_USER<br />
HKLM HKEY_LOCAL_MACHINE<br />
HKCR HKEY_CLASSES_ROOT<br />
HKEY_USERS<br />
HKEY_CURRENT_CONFIG<br />
<br />
<br />
<br />
anyValue<br />
当 strType 为 REG_SZ 或 REG_EXPAND_SZ 时,RegWrite 方法自动将 anyValue 转换为字符串。若 strType 为 REG_DWORD,则 anyValue 被转换为整数。若 strType 为 REG_BINARY,则 anyValue 必须是一个整数。<br />
<br />
strType<br />
RegWrite 方法支持 strType 为 REG_SZ、REG_EXPAND_SZ、REG_DWORD 和 REG_BINARY。若其他的数据类型被作为 strType 传递,RegWrite 返回 E_INVALIDARG。<br />
示例<br />
Set WshShell = Wscript.CreateObject("Wscript.Shell")<br />
<br />
WshShell.RegWrite "HKCUScriptEngineValue", "Some string value"<br />
WshShell.RegWrite "HKCUScriptEngineKey", 1 "REG_DWORD"<br />
<br />
请参阅<br />
WshShell.RegDelete 方法、WshShell.RegWrite方法<br />
<br />
<br />
WshShell.Run<br />
Run 方法创建一个新的进程,该进程以 intWindowStyle 窗口样式执行 strCommand。<br />
<br />
语法<br />
WshShell.Run (strCommand, [intWindowStyle], [blnWaitOnReturn])<br />
<br />
参数<br />
strCommand<br />
在 strCommand 参数内部的环境变量被自动扩展。<br />
<br />
intWindowStyle<br />
这是为新进程在 STARTUPINFO 结构内设置的 wShowWindow 元素的值。其意义与 ShowWindow 中的 nCmdShow 参数相同,可取以下值之一。名称 值 含义<br />
SW_HIDE<br />
0 隐藏窗口并激活另一窗口。<br />
SW_MINIMIZE<br />
6 最小化指定窗口并激活按 Z 序排序的下一个顶层窗口。<br />
SW_RESTORE<br />
9 激活并显示窗口。若窗口是最小化或最大化,则恢复到原来的大小和位置。在还原应用程序的最小化窗口时,应指定该标志。<br />
SW_SHOW<br />
5 以当前大小和位置激活并显示窗口。<br />
SW_SHOWMAXIMIZED<br />
3 激活窗口并以最大化显示该窗口。<br />
SW_SHOWMINIMIZED<br />
2 激活窗口并以最小化显示该窗口。<br />
SW_SHOWMINNOACTIVE<br />
7 最小化显示窗口。活动窗口保持活动。<br />
SW_SHOWNA<br />
8 以当前状态显示窗口。活动窗口保持活动。<br />
SW_SHOWNOACTIVATE<br />
4 按窗口最近的大小和位置显示。活动窗口保持活动。<br />
SW_SHOWNORMAL<br />
1 激活并显示一个窗口。若窗口是最小化或最大化,则恢复到其原来的大小和位置。<br />
<br />
<br />
<br />
blnWaitOnReturn<br />
如果未指定 blnWaitOnReturn 或其值为 FALSE,则该方法立即返回到脚本继续执行而不等待进程结束。<br />
若 blnWaitOnReturn 设为 TRUE,则 Run 方法返回由应用程序返回的任何错误代码。如果未指定 blnWaitOnReturn 或其值为 FALSE,则 Run 返回错误代码 0(zero)。<br />
<br />
示例<br />
'' This fragment launches Notepad with the current executed script<br />
Set WshShell = Wscript.CreateObject("Wscript.Shell")<br />
WshShell.Run ("notepad " & Wscript.ScriptFullName)<br />
WshShell.Run ("%windir%notepad" & Wscript.ScriptFullName)<br />
<br />
'' This fragment returns the error code from the executed application<br />
Return = WshShell.Run("notepad " & Wscript.ScriptFullName, 1, TRUE)</p>