日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

VBScript: Windows脚本宿主介绍

發布時間:2023/12/14 windows 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VBScript: Windows脚本宿主介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Windows腳本宿主(Windows Script Host, WSH)是一個Windows管理工具。WSH創建了一個腳本運行的主環境,WSH使腳本能夠使用對象和服務,并提供腳本執行的準則。WSH還負責安全管理以及調用適當的腳本引擎。

使用Windows腳本宿主運行腳本

WSH提供了兩個用于執行腳本的接口,這兩個接口各使用不同的宿主程序作為VBScript引擎:

cscript.exe:用于在命令行中運行腳本,

wscript.exe:用于在Windows環境中運行腳本,直接與Windows GUI進行交互。

這兩者就功能來講幾乎沒有區別。

Windows腳本宿主的內建對象

1.WScript對象:WSH對象模型的基礎。

屬性:

Arguments,FullName,Interactive,Name,Path,ScriptFullName,ScriptName,StdErr,StdIn,StdOut,Version.

方法:

CreateObject,ConnectObject,DisconnectObject,Echo,GetObject,Quit,Sleep

2.WshArgument對象:是一個由WScript對象的Arguments屬性返回的集合(WScript.Arguments),下面為遍歷WshArguments集合的簡單循環,依次顯示每個元素:

Set objArgs = WScript.Arguments For x = 0 To objArgs.Count - 1 WScript.Echo objArgs(x) Next

3. WshNamed對象:WshNamed對象提供從命令行中對有名參數的訪問。

4. WshUnnamed對象:WshNamed對象提供從命令行中對無名參數的訪問。

  • 使用WshArguments對象訪問整個參數集合。
  • 使用WshNamed對象訪問有名字的參數。
  • 使用WshUnamed對象訪問沒有名字的參數。

5.WshShell對象:用于獲取系統環境變量的訪問、創建快捷方式、訪問Windows的特殊文件夾,如Windows Desktop,以及添加或刪除注冊表條目,還可使用Shell對象的功能創建更多的定制對話款以進行用戶交互。

1)訪問WshShell對象:要想使用WshShell對象的屬性和方法,必須創建一個WScript.Shell對象的實例。這樣以后對WshShell對象的引用實際就是對新創建實例的引用。

Set WshShell = WScript.CreateObject("WScript.Shell")

2)WshShell對象的屬性

  • CurrentDirectory:該屬性獲取或更改當前活動目錄。返回一個字符串,其中包含當前活躍進程的當前工作目錄的完整有效路徑名。
Dim WshShell Set WshShell = WScript.CreateObject("WScript.Shell") WScript.Echo WshShell.CurrentDirectory
  • Environment: 該屬性返回WshEnvironment對象(一個環境變量集合)。

object.Environment([strType])

strType:可選,指定環境變量的位置。包括:System,User,Volatile,Process

下例返回系統中存在的處理器個數。

Set WshShell = WScript.CreateObject("WScript.Shell") Set WshSysEnv = WshShell.Environment("SYSTEM") WScript.Echo WshSysEnv("NUMBER_OF_PROCESSORS")
  • SpecialFolders: 該屬性返回一個SpecialFolders對象(一個特殊文件夾集合)。如果被請求的文件夾不可用,SpecialFolders屬性將返回一個空字符串。

object.SpecialFolders(objWshSpecialFolders)

下例將Start Menu文件夾保存在變量strDesktop變量中

strDesktop = WshShell.SpecialFolders("StartMenu")

3)WshShell對象的方法(11個方法,均與操作系統shell相關)

  • AppActivate:該方法用于激活一個指定的已經打開的應用程序窗口。返回一個Boolean類型的值,標志著過程調用是否成功。這個方法用于將焦點切換至指定名稱的應用程序或窗口。

用法:object.AppActivate title

下例為打開計算器,并使用計算器計算3*5=15的過程(要運行下面的代碼,需要將其保存為.wsf擴展名的Windows腳本宿主文件)。

<package> <job id="vbs"> <script language="VBScript"> Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "calc" WScript.Sleep 100 WshShell.AppActivate "Calculator" WScript.Sleep 100 WshShell.SendKeys "1{+}" WScript.Sleep 500 WshShell.SendKeys "3" WScript.Sleep 500 WshShell.SendKeys "~" WScript.Sleep 500 WshShell.SendKeys "*5" WScript.Sleep 500 WshShell.SendKeys "~" WScript.Sleep 2500 </script> </job> </package>
  • CreateShortcut: 該方法用于創建一個新的快捷方式,或打開一個已有的快捷方式。要創建一個快捷方式,必須完成下列三個步驟:
        • 創建WshShortcut對象的一個實例。
        • 初始化其屬性。
        • 使用Save方法將其保存到磁盤。

用法:object.CreateShortcut(strPathname)

下例創建了一個記事本的快捷方式到桌面:

<package> <job id="vbs"> <script language="VBScript"> Set WshShell = WScript.CreateObject("WScript.Shell") strDesktop = WshShell.SpecialFolders("Desktop") Set oShellLink = WshShell.CreateShortcut(strDesktop & _ "\Shortcut Script.lnk") oShellLink.TargetPath = "%windir%\system32\notepad.exe" oShellLink.WindowStyle = 1 oShellLink.Hotkey = "CTRL+SHIFT+N" oShellLink.IconLocation = "nopepad.exe, 0" oShellLink.Description = "Shortcut to Notepad" oShellLink.WorkingDirectory = strDesktop oShellLink.Save </script> </job> </package>
  • ExpandEnvironmentStrings: 該方法返回環境變量的擴充值,且只對PROCESS環境空間內定義的環境變量進行擴充。環境變量的名稱必須以"%"包圍,并且是大小寫不敏感的。

用法:object.ExpandEnvironmentStrings(strString)

strString為一個字符串值,表示想要擴充的環境變量的名稱。

Set WshShell = WScript.CreateObject("WScript.Shell") WScript.Echo "Then path to WinDir is " _ & WshShell.ExpandEnvironmentStrings("%WinDir%")
  • LogEvent: 該方法用于向日志文件中添加一個事件條目。
  • Popup: 該方法用于在彈出式消息框中顯示文本。無論使用哪種宿主可執行文件(wscript.exe或cscript.exe)運行腳本,都可以使用Popup方法顯示一個消息框。

用法:intButton = object.Popup(strText,[nSecondsToWait],[strTitle],[nType])

strText: 一個字符串值,包含了想要顯示在彈出式消息框中的文本。

nSecondsToWait: 一個數值,表示想要彈出式消息框現實的最長時間(以秒為單位)。默認值為0,表示彈出式消息框一直可見,直到被關閉。

strTitle: 一個字符串值,指定想要出現在彈出式消息框標題欄中的文本。若不指定,默認值為"Windows Script Host"。

nType: 一個數值,表示想在彈出式消息框中出現的按鈕和圖標的類型。

IntButton: 一個整數值,表示關閉消息框時單擊的按鈕的序號,這個值是由Popup方法返回的。

下面三個表格分別列出按鈕類型、圖標類型、關閉消息框是所單擊的按鈕的編號:

按鈕類型:

描述
0顯示OK按鈕
1顯示OK和Cancel按鈕
2顯示Abort、Retry和Ignore按鈕
3顯示Yes、No和Cancel按鈕
4顯示Yes和No按鈕
5顯示Retry和Cancel按鈕

圖標類型:

描述
16顯示中止(Stop Mart)圖標
32顯示問號(Question Mart)圖標
48顯示嘆號(Exclamation Mark)圖標
64顯示提示信息(Information Mark)圖標

關閉消息框時所單擊的按鈕的編號:

描述
1OK按鈕
2Cancel按鈕
3Abort按鈕
4Retry按鈕
5Ignore按鈕
6Yes按鈕
7No按鈕

舉例:

Dim WshShell, BtnCode Set WshShell = WScript.CreateObject("WScript.Shell") ? BtnCode = WshShell.Popup("Do you like this code?", 7, "Quick survey:", 4 + 32) ? Select Case BtnCode Case 6 WScript.Echo "Glad to hear it - Thanks!" Case 7 WScript.Echo "I'm sorry you didn't like it." Case -1 WScript.Echo "Helllloooooooo?" End Select
  • RegDelete: 該方法從注冊表中刪除一個鍵或其鍵值。如果strName以反斜杠結尾,就可以指定鍵名,如果不使用反斜杠,就可以指定鍵值名。

用法:object.RegDelete(strName)

下表給出了根鍵名及其縮寫:

根鍵名縮寫
HKEY_CURRENT_USERHKCU
HKEY_LOCAL_MACHINEHKLM
HKEY_CLASSES_ROOTHKCR
HKEY_USERSHKEY_USERS
HKEY_CURRENT_CONFIGHKEY_CURRENT_CONFIG
  • RegRead: 該方法返回注冊表中一個鍵或鍵值的名稱。

用法:object.RegRead(strName)

一個鍵值包含三部分:如果指定了鍵名(相對于鍵值名來說),RegRead就會返回默認的值。所以要讀取一個鍵的默認值,只要指定鍵的名稱即可。

  • 名稱(Name)
  • 數據類型(Data Type)
  • 值(Value)
  • RegRead方法返回的值有5種類型:

    類型描述形式
    REG_SZ字符串字符串
    REG_DWORD數字整數
    REG_BINARY二進制值整數構成的VBArray
    REG_EXPAND_SZ可擴充字符串(例如%windir%\\notepad.exe)字符串
    REG_MULTI_SZ字符串數組字符串構成的VBArray
    • RegWrite: 該方法可以創建一個新鍵,給現有鍵添加另一個鍵值名(并制定一個值),或修改現有鍵值名的值。

    用法:object.RegWrite(strName, anyValue [,strType])

    strName: 一個字符串值,表示想要創建、添加或修改的鍵名、鍵值名或鍵值。

    anyValue: 想要創建的新鍵的名稱,或想添加到現有鍵的鍵值名,或想指定給某個現有鍵值名的新鍵值。

    strType: 一個表示鍵值數據類型的字符串。RegWrite方法不支持REG_MULTI_SZ類型,支持上表中的其余四種類型。

    Dim WshShell, bKey Set WshShell = WScript.CreateObject("WScript.Shell") 'RegWrite部分 WshShell.RegWrite "HKCU\Software\WROX\VBScript\",1,"REG_BINARY" WshShell.RegWrite "HKCU\Software\WROX\VBScript\ProgRef","VB_is_great","REG_SZ" 'RegRead部分 bKey = WshShell.RegRead("HKCU\Software\WROX\VBScript\") WScript.Echo WshShell.RegRead("HKCU\Software\WROX\VBScript\ProgRef") 'RegDelete部分 WshShell.RegDelete "HKCU\Software\WROX\VBScript\ProgRef" WshShell.RegDelete "HKCU\Software\WROX\VBScript\" WshShell.RegDelete "HKCU\Software\WROX\"
    • Run: Run方法在一個新進程中運行一個程序。

    用法:object.Run(strCommand,[intWindowStyle],[bWaitOnReturn])

    在AppActivate方法示例中已經用到過Run方法。下例代碼打開命令提示符窗口并顯示C盤內容:

    Dim oShell Set oShell = WScript.CreateObject("WScript.Shell") oShell.Run "cmd /K CD C:\ & Dir" Set oShell = Nothing
    • SendKeys: SendKeys方法向活躍窗口發送一次或多次擊鍵(仿佛來自鍵盤)。

    用法:object.SendKeys(string)

    要發送一個單獨的鍵盤字符,只要將該字符本身作為字符串參數發送即可,如"x";

    也可以發送多次擊鍵,如,要發送擊鍵x、y和z,可以發送字符串參數"xyz";

    要發送特殊字符,包括圓括弧、尖括弧、花括弧以及加號(+),上尖號(^),百分號(%),波浪號(~),可以將它們包含在一對花括弧"{}"中間,如發送加號,可以發送字符串"{+}"。

    • Exec: Exec方法在一個子命令解釋器中運行一個應用程序,子命令解釋器提供對StdIn、StdOut和StdErr流的訪問。該方法只能執行命令行應用程序,并且不能用于運行遠程腳本。

    6. WshNetwork對象: WshNetwork對象提供對計算機所連接的網絡上共享資源的訪問。

    1)訪問WshNetwork對象: 通過創建WScript.Network對象的實例實現。

    2)WshNetwork對象的屬性

    • ComputerName
    • UserDomain
    • UserName

    下例用到了這三個屬性:

    <package> <job id = "vbs"> <script language="VBScript"> Set WshNetwork = WScript.CreateObject("WScript.Network") WScript.Echo "Domain = " & WshNetwork.UserDomain WScript.Echo "Computer Name = " & WshNetwork.ComputerName WScript.Echo "User Name = " & WshNetwork.UserName </script> </job> </package>

    3)WshNetwork對象的方法

    AddWindowsPrinterConnection: 在計算機系統中添加一個Windows打印機連接。

    AddPrinterConnection: 在計算機系統中添加一個遠程打印機連接。

    EnumPrinterDrives:返回當前網絡驅動器的映射信息。

    EnumPrinterConnection:返回當前網絡打印機的映射信息。

    MapNetworkDrive:在計算機系統中添加一個共享網絡驅動器。

    RemoveNetworkDrive:在計算機系統中刪除一個共享的網絡驅動器。

    RemovePrinterConnection:在計算機系統中刪除一個共享的網絡打印機連接。

    SetDefaultPrinter:將某個遠程打印機指定為默認打印機。

    7.WshEnvironment對象:提供對Windows環境變量集合的訪問。

    屬性方法略。

    8. WshSpecialFolders對象:提供對Windows特殊文件夾集合的訪問。

    屬性方法略。

    9. WshShortcut對象:允許使用腳本創建快捷方式。

    屬性方法略。

    10. WshUrlShortcut對象:允許使用腳本創建到Internet資源的快捷方式。

    屬性方法略。

    ?

    本文參考資料:

    《VBScript程序員參考手冊》

    轉載于:https://www.cnblogs.com/ITGirlXiaoXiao/p/3191100.html

    總結

    以上是生活随笔為你收集整理的VBScript: Windows脚本宿主介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。