VBScript

VBScript

VBScript是Visual Basic Script的簡稱,即 Visual Basic 腳本語言,有時也被縮寫為VBS。它是一種微軟環境下的輕量級解釋型語言,它使用COM組件WMIWSHADSI訪問系統中的元素,對系統進行管理。同時它又是asp動態網頁默認的程式語言,配合asp內建對象和ADO對象,用戶很快就能掌握訪問資料庫的asp動態網頁開發技術。

基本介紹

  • 中文名:VBScript
  • 外文名:VisualBasic Script
產品套用,VBScript函式,Date/Time函式,Conversion函式,Format函式,Math函式,Array函式,String函式,其他函式,套用領域,作業系統,網頁瀏覽器,網頁伺服器,數據類型,錯誤代碼,語法錯誤,運行錯誤,腳本,系統管理示例,WSH的FileSystemObject管理驅動器和檔案,使用WMI管理計算機,使用ADSI管理域,優缺點,優點,缺點,

產品套用

腳本用於動態網頁製作,在HTML (超文本標記語言)中插入腳本,可以使網頁有一些動態效果,還可以實現一些互動操作,例如,目前在登錄一個網站時通常要輸入驗證碼,而使用腳本語言就可以對驗證碼進行有效性驗證。網頁上最常用的是JavaScript、VBScript 這兩種腳本語言。
腳本語言的特點為:
1)簡單易學。2)解釋性語言。3)集成成熟技術。
VBScript是 Visual Basic Script 的簡稱,即 Visual Basic 腳本語言,有時也被縮寫為 VBS。
VBScript 是微軟開發的一種腳本語言。使用 VBScript,可通過 Windows 腳本宿主調用 COM,所以可以使用 Windows 作業系統中可被使用的程式庫。
VBScript 一般被用在以下個方面:VBScript 經常被用來完成重複性的Windows 作業系統任務;用來指揮客戶方的網頁瀏覽器。在這一方面,VBS 與JavaScript 是競爭者,因為本文的實驗環境基於 Window 平台,為了達到更好的兼容性和性能選用 VBScript。
由於VBScript可以通過Windows腳本宿主調用COM,因而可以使用Windows作業系統中可以被使用的程式庫,比如它可以使用Microsoft Office的庫,尤其是使用Microsoft AccessMicrosoftSQL Server的程式庫,當然它也可以使用其它程式和作業系統本身的庫。
VBScript是基於Visual Basic程式語言的腳本語言,是IIS(網際網路信息服務,InternetInformation Services)的默認源程式語言。VBScript最開始是通過事件驅動來擴展客戶端HTML的功能,可在網頁上處理、控制對象,它能與HTML頁面很好的結合使用,VBScript可是操作HTML頁面,還可對頁面中的事件做出回響。另外,VBScript還提供了一些套用對象,使編寫者更方便地編寫腳本,用於實現一些特有功能。

VBScript函式

本頁列出了所有內建的 VBScript 函式,主要分為以下幾類:

Date/Time函式

函式描述
把有效的日期和時間表達式轉換為日期(Date)類型。
返回當前的系統日期。
返回已添加指定時間間隔的日期。
返回兩個日期之間的時間間隔數。
返回給定日期的指定部分。
返回指定年、月、日的日期。
返回日期。
返回代表一月中的一天的數字(介於並包括 1 到 31 之間)。
FormatDateTime
返回格式化為日期或時間的表達式。
返回代表一天中的小時的數字(介於並包括 0 到 23 之間)。
返回指示計算表達式能否轉換為日期的布爾值。
返回一個數字,代表小時的分鐘(介於並包括 0 到 59 之間)。
返回一個數字,代表年的月份(介於並包括 1 到 12 之間)。
返回指定月份的名稱。
返回當前的系統日期和時間。
返回一個數字,代表分鐘的秒(介於並包括 0 到 59 之間)。
返回當前的系統時間。
返回自 12:00 AM 以來的秒數。
返回特定小時、分鐘和秒的時間。
返回時間。
返回一個數字,代表一周的天數(介於並包括 1 到 7 之間)。
返回一周中指定的一天的星期名。
返回一個數字,代表年份。

Conversion函式

函式描述
把字元串中的首字母轉換為 ANSI 字元代碼。
把表達式轉換為布爾(Boolean)類型。
把表達式轉換為位元組(Byte)類型。
把表達式轉換為貨幣(Currency)類型。
把有效的日期和時間表達式轉換為日期(Date)類型。
把表達式轉換為雙精度(Double)類型。
把指定的 ANSI 字元代碼轉換為字元。
把表達式轉換為整數(Integer)類型。
把表達式轉換為長整型(Long)類型。
把表達式轉換為單精度(Single)類型。
把表達式轉換為字元串(String)類型。
返回指定數字的十六進制值。
返回指定數字的八進制值。

Format函式

函式描述
返回作為貨幣值進行格式化的表達式。
FormatDateTime
返回作為日期或時間進行格式化的表達式。
FormatNumber
返回作為數字進行格式化的表達式。
返回作為百分數進行格式化的表達式。

Math函式

函式描述
返回指定數字的絕對值。
返回指定數字的反正切。
返回指定數字(角度)的餘弦。
返回 e(自然對數的底)的冪次方。
返回指定數字的十六進制值。
返回指定數字的整數部分。
返回指定數字的整數部分。
返回指定數字的自然對數。
返回指定數字的八進制值。
返回小於1但大於或等於0的一個隨機數。
返回可指示指定數字的符號的一個整數。
返回指定數字(角度)的正弦。
返回指定數字的平方根。
返回指定數字(角度)的正切。

Array函式

函式描述
返回一個包含數組的變數。
返回下標從零開始的數組,其中包含基於特定過濾條件的字元串數組的子集。
返回一個指示指定的變數是否為數組的布爾值。
返回一個由數組中若干子字元串組成的字元串。
返回指示數組維數的最小下標。
返回下標從零開始的一維數組,包含指定數量的子字元串。
返回指示數組維數的最大下標。

String函式

函式描述
返回字元串在另一字元串中首次出現的位置。搜尋從字元串的第一個字元開始。
返回字元串在另一字元串中首次出現的位置。搜尋從字元串的最末字元開始。
把指定字元串轉換為小寫。
從字元串的左側返回指定數量的字元。
返回字元串中的字元數量。
刪除字元串左側的空格。
刪除字元串右側的空格。
刪除字元串左側和右側的空格。
從字元串中返回指定數量的字元。
使用另一個字元串替換字元串的指定部分指定的次數。
從字元串的右側返回指定數量的字元。
返回由指定數量的空格組成的字元串。
比較兩個字元串,返回代表比較結果的一個值。
返回包含指定長度的重複字元的字元串。
反轉字元串。
把指定的字元串轉換為大寫。

其他函式

函式描述
創建指定類型的對象。
計算表達式,並返回結果。
GetLocale
返回當前的 locale ID。
返回對檔案中 automation 對象的引用。
GetRef
允許您把 VBScript 子程式連線到頁面上的一個 DHTML 事件。
顯示對話框,用戶可在其中輸入文本,並/或點擊按鈕,然後返回內容。
返回一個布爾值,指示指定的變數是否已被初始化。
返回一個布爾值,指示指定的表達式是否包含無效數據(Null)。
返回一個布爾值,指示指定的表達式是否可作為數字來計算。
返回一個布爾值,指示指定的表達式是否是一個 automation 對象。
返回一個圖片對象。僅用於 32 位平台。
顯示訊息框,等待用戶點擊按鈕,並返回指示用戶點擊了哪個按鈕的值。
返回一個表示 RGB 顏色值的數字。
對數字進行四捨五入。
返回使用中的腳本語言。
ScriptEngineBuildVersion
返回使用中的腳本引擎的內部版本號。
ScriptEngineMajorVersion
返回使用中的腳本引擎的主版本號。
ScriptEngineMinorVersion
返回使用中的腳本引擎的次版本號。
設定 locale ID,並返回之前的 locale ID。
返回指定變數的子類型。
返回指示變數子類型的值。

套用領域

作業系統

VBScript可以被用來自動地完成重複性的Windows作業系統任務。在Windows作業系統中,VBScript可以在Windows Script Host的範圍內運行。Windows作業系統可以自動辨認和執行*.VBS和*.WSF兩種檔案格式,此外 Internet Explorer可以執行HTA和CHM檔案格式。VBS和WSF檔案完全是文字式的,它們只能通過少數幾種對話視窗與用戶通訊。HTA和CHM檔案使用HTML格式,它們的程式碼可以象HTML一樣被編輯和檢查。在WSF、HTA和CHM檔案中VBScript和JavaScript的程式碼可以任意混合。HTA檔案實際上是加有VBS、JavaScript成分的HTML檔案。CHM檔案是一種線上幫助,用戶可以使用專門的編輯程式將HTML程式編輯為CHM。
VBScriptVBScript

網頁瀏覽器

網頁中的VBS可以用來指揮客戶方的網頁瀏覽器(瀏覽器執行VBS程式)。VBS與JavaScript在這一方面是競爭者,它們可以用來實現動態HTML,甚至可以將整個程式結合到網頁中來。至今為止VBS在客戶方面未能占優勢,因為它只獲得Microsoft Internet Explorer的支持(Mozilla Suite可以通過裝置一個外掛來支持VBS)。而JavaScript則受到所有網頁瀏覽器的支持。在Internet Explorer中VBS和JavaScript使用同樣的許可權,它們只能有限地使用Windows作業系統中的對象。

網頁伺服器

在網頁伺服器方面VBS是微軟的Active Server Pages的一部分,它與JavaServer Pages和PHP是競爭對手。在這裡VBS的程式碼直接嵌入到HTML頁內,這樣的網頁以ASP結尾。網頁伺服器Internet信息服務執行ASP頁內的程式部分並將其結果轉化為HTML傳遞給網頁瀏覽器供用戶使用。這樣伺服器可以進行資料庫聞訊並將其結果放到HTML網頁中。

數據類型

VBScript 只有一種數據類型,稱為 Variant。Variant 是一種特殊的數據類型,根據使用的方式,它可以包含不同類別的信息。因為 Variant 是 VBScript 中唯一的數據類型,所以它也是 VBScript 中所有函式的返回值的數據類型。
最簡單的
最簡單的 Variant 可以包含數字或字元串信息。Variant 用於數字上下文中時作為數字處理,用於字元串上下文中時作為字元串處理。這就是說,如果使用看起來象是數字的數據,則 VBScript 會假定其為數字並以適用於數字的方式處理。與此類似,如果使用的數據只可能是字元串,則 VBScript 將按字元串處理。也可以將數字包含在引號 (" ") 中使其成為字元串。
子類型
除簡單數字或字元串以外,Variant 可以進一步區分數值信息的特定含義。例如使用數值信息表示日期或時間。此類數據在與其他日期或時間數據一起使用時,結果也總是表示為日期或時間。從 Boolean 值到浮點數,數值信息是多種多樣的。Variant 包含的數值信息類型稱為子類型。大多數情況下,可將所需的數據放進 Variant 中,而 Variant 也會按照最適用於其包含的數據的方式進行操作。
描述
Empty 未初始化的 Variant。對於數值變數,值為 0;對於字元串變數,值為零長度字元串 ("")。
Null 不包含任何有效數據的 Variant。
Boolean 包含 True 或 False。
Byte 包含 0 到 255 之間的整數。
Integer 包含 -32,768 到 32,767 之間的整數。
Currency -922,337,203,685,477.5808 到 922,337,203,685,477.5807。
Long 包含 -2,147,483,648 到 2,147,483,647 之間的整數。
Single 包含單精度浮點數,負數範圍從 -3.402823E38 到 -1.401298E-45,正數範圍從 1.401298E-45 到 3.402823E38。
Double 包含雙精度浮點數,負數範圍從 -1.79 769 31348 6232E308 到 -4.9406564 5841247E-324,正數範圍從 4.9406564 5841247E-324 到 1. 7976931 3486232E308。
Date (Time) 包含表示日期的數字,日期範圍從公元 100 年 1 月 1 日到公元 9999 年 12 月 31 日。
String 包含變長字元串,最大長度可為 20 億個字元。
Object 包含對象。
Error 包含錯誤號。

錯誤代碼

Microsoft VBScript 編譯器錯誤 錯誤 '' 缺少語句
ActiveServerPages,ASP0126(0x80004005)-->找不到包含檔案
MicrosoftOLEDBPRoviderforODBCDrivers(0x80040E21)-->sql語句出錯(數據類型不匹配或表名(欄位名)錯誤或表處於編輯狀態,或表不存在於conn打開的資料庫中)
MicrosoftOLEDBPRoviderforODBCDrivers(0x80040E14)-->sql語句出錯(欄位名錯誤,或數據類型不匹配)
MicrosoftOLEDBPRoviderforODBCDrivers(0x80040E07)-->sql語句出錯(要插入或更新的欄位的類型與變數數據類型不匹配)
MicrosoftOLEDBPRoviderforODBCDrivers(0x80040E57)-->sql語句出錯(要插入或更新的數據溢出)
MicrosoftOLEDBPRoviderforODBCDrivers(0x80040E10)-->sql語句出錯(update欄位名或要更新的數據類型錯誤)
MicrosoftOLEDBPRoviderforODBCDrivers(0x80004005)-->sql語句出錯(要插入或更新的欄位的數值不能為空值)
MicrosoftOLEDBPRoviderforODBCDrivers(0x80004005) -->打開資料庫出錯,沒有在指定目錄發現資料庫
MicrosoftOLEDBPRoviderforODBCDrivers(0x80040E37)-->沒有發現表
MicrosoftVBscript運行時錯誤(0x800A000D)-->錯誤引用rs變數(rs對像已關閉或未定義)
MicrosoftVBscript運行時錯誤(0x800A01C2)-->vbscript腳本錯誤(vbscript語句出錯)
MicrosoftVBscript運行時錯誤(0x800A0006)-->vbscript腳本錯誤(溢出錯誤)
MicrosoftVBscript編譯器錯誤(0x800A040E)-->缺少loop
MicrosoftVBscript編譯器錯誤(0x800A03EA)-->缺少if或endif
MicrosoftVBscript編譯器錯誤(0x800A03EE)--> 語句未結束(缺少")")
MicrosoftVBscript編譯器錯誤(0x800A03F6)-->if語句出錯(缺少endif)
MicrosoftVBscript運行時錯誤(0x800A005B)-->缺少set
MicrosoftVBscript運行時錯誤(0x800A0005)-->變數未定義
MicrosoftVBscript編譯器錯誤(0x800A03F9)-->if語句缺少then
MicrosoftVBscript編譯器錯誤(0x800A0411)-->dim語句定義錯誤
MicrosoftVBscript編譯器錯誤(0x800A0408)-->sql語句錯誤(?????????????????)
Microsoft VBScript 運行時錯誤 (0x800A01B6)錯誤原因:set rs=server.create......你少了 set
ADODB.Recordset(0x800A0BB9)-->sql語句出錯(sql語句或conn語句未定義或對一個rs屬性進行賦值時發生錯誤)
ADODB.Recordset(0x800A0CC1)-->rs對像出錯(rs對像本身不存在或錯誤地引用了一個不存在的欄位名)
ADODB.Recordset(0x800A0BCD)-->rs對像出錯(記錄集中沒有記錄卻對記錄集進行操作)
ADODB.Recordset(0x800A0E78)-->rs對像出錯(記錄集不存在,缺少rs.open語句)
ADODB.Recordset(0x800A0CC1) -->rs對像出錯(引用了一個不存在的欄位名)
ADODB.Recordset(0x800A0E7D)-->conn定義錯誤
ADODB.Recordset(0x800A0CB3)-->資料庫以唯讀方式打開,無法更新數據

語法錯誤

如果 VBScript 語句結構違反了一個或多個 VBScript 腳本語言語法規則,就會產生 VBScript 語法錯誤。
錯誤通常在執行程式前,編譯程式時產生。 以下是53個語法錯誤:
錯誤編號 描述
十進制 十六進制 說明
1001 800A03E9 記憶體不足
1002 800A03EA 語法錯誤
1003 800A03EB 缺少“:”
1005 800A03ED 需要 '('
1006 800A03EE 需要 ')'
1007 800A03EF 缺少“]”
1010 800A03F2 需要標識符
1011 800A03F3 需要 '='
1012 800A03F4 需要 'If'
1013 800A03F5 需要 'To'
1014 800A03F6 需要 'End'
1015 800A03F7 需要 'Function'
1016 800A03F8 需要 'Sub'
1017 800A03F9 需要 'Then'
1018 800A03FA 需要 'Wend'
1019 800A03FB 需要 'Loop'
1020 800A03FC 需要 'Next'
1021 800A03FD 需要 'Case'
1022 800A03FE 需要 'Select'
1023 800A03FF 需要表達式
1024 800A0400 需要語句
1025 800A0401 需要語句的結束
1026 800A0402 需要整數常數
1027 800A0403 需要 'While' 或 'Until'
1028 800A0404 需要 'While,'、 'Until,' 或語句未結束
1029 800A0405 需要 'With'
1030 800A0406 標識符太長
1031 800A0407 無效的數
1032 800A0408 無效的字元
1033 800A0409 未結束的串常量
1034 800A040A 未結束的注釋
1037 800A040D 無效使用關鍵字 'Me'
1038 800A040E 'loop' 沒有 'do'
1039 800A040F 無效 'exit' 語句
1040 800A0410 無效 'for' 循環控制變數
1041 800A0411 名稱重定義
1042 800A0412 必須為行的第一個語句
1043 800A0413 不能賦給非Byval參數
1044 800A0414 調用 Sub 時不能使用圓括弧
1045 800A0415 需要文字常數
1046 800A0416 需要 'In'
1047 800A0417 需要 'Class'
1048 800A0418 必須在一個類的內部定義
1049 800A0419 在屬性聲明中需要 Let , Set 或 Get
1050 800A041A 需要 'PRoperty'
1051 800A041B 參數數目必須與屬性說明一致
1052 800A041C 在類中不能有多個預設的屬性/方法
1053 800A041D 類初始化或終止不能帶參數
1054 800A041E PRoperty Let 或 Set 至少應該有一個參數
1055 800A041F 不需要的 'Next'
1056 800A0420 只能在 ‘PRoperty’ 或 ’Function’ 或 ’Sub’ 上指定 ’Default’
1057 800A0421 說明 'Default' 必須同時說明 'Public' "
1058 800A0422 只能在 PRoperty Get 中指定 'Default'

運行錯誤

如果 VBScript 腳本執行系統無法實施的操作,則會產生 VBScript 運行時錯誤。只有在運行腳本、為變數表達式賦值或
分配記憶體時,才會產生 VBScript 運行時錯誤。 以下是65個運行時錯誤:
錯誤編號 描述
十進制 十六進制 說明
5 800A0005 無效過程調用或參數
6 800A0006 溢出
7 800A0007 記憶體不足
9 800A0009 下標越界
10 800A000A 該數組為定長的或臨時被鎖定
11 800A000B 被零除
13 800A000D 類型不匹配
14 800A000E 字元串空間溢出
17 800A0011 無法執行請求的操作
28 800A001C 堆疊溢出
35 800A0023 未定義 Sub 或 Function
48 800A0030 載入 DLL 錯誤
51 800A0033 內部錯誤
52 800A0034 壞檔案名稱或數
53 800A0035 檔案未找到
54 800A0036 壞檔案模式
55 800A0037 檔案已經打開
57 800A0039 設備I/O錯誤
58 800A003A 檔案已經存在
61 800A003D 磁碟空間已滿
62 800A003E 輸入超出檔案尾
67 800A0043 檔案太多
68 800A0044 設備不可用
70 800A0046 許可權禁用
71 800A0047 磁碟未準備好
74 800A004A 不能用不同的驅動器重新命名
75 800A004B 路徑/檔案訪問錯誤
76 800A004C 路徑未找到
91 800A005B 未設定對象變數
92 800A005C For 循環未初始化
94 800A005E 非法使用 Null
322 800A0142 不能建立所需臨時檔案
424 800A01A8 需要對象
429 800A01AD ActiveX 部件無法創建對象
432 800A01B0 在自動化操作中未找到檔案名稱或類名
438 800A01B6 對象不支持該屬性或方法
440 800A01B8 Automation錯誤
445 800A01BD 對象不支持此操作
446 800A01BE 對象不支持指定的參數
447 800A01BF 對象不支持當前的區域設定
448 800A01C0 未找到命名參數
449 800A01C1 參數不可選
450 800A01C2 錯誤的參數個數或無效的參數屬性值
451 800A01C3 對象不是一個集合
453 800A01C5 指定的dll函式未找到
455 800A01C7 代碼源鎖錯誤
457 800A01C9 這個鍵已經是本集合的一個元素關聯
458 800A01CA 變數使用了一個 VBScript 中不支持的自動化(Automation)類型
462 800A01CE 遠程伺服器不存在或不能訪問
481 800A01E1 無效圖片
500 800A01F4 變數未定義
501 800A01F5 違法的分配
502 800A01F6 腳本對象不安全
503 800A01F7 對象不能安全初始化
504 800A01F8 對象不能安全創建
505 800A01F9 無效的或不合格的引用
506 800A01FA 類未被定義
507 800A01FB 發生異常
5016 800A1398 需要正則表達式對象
5017 800A1399 正則表達式中的語法錯誤
5018 800A139A 錯誤的數量詞
5019 800A139B 在正則表達式中需要 ']'
5020 800A139C 在正則表達式中需要 ')'
5021 800A139D 字元集越界
32811 800A802B 元素未找到

腳本

什麼是VBScript
VBScript 是一種腳本語言
腳本語言是一種輕量級的程式語言
VBScript 是微軟的程式語言 Visual Basic 的輕量級的版本
如何工作
當VBScript 被插入一個 HTML 文檔後,網際網路瀏覽器會讀取這個文檔,並對 VBScript 進行解釋。VBScript 可能會立即執行,也可能在之後的事件發生時執行。
讀取 VBScript
<html><head></head><body><scripttype="text/vbscript">document.write("HellofromVBScript!");</script></body></html>
變數名稱的規則
必須以字母開頭
不能包含點號 (.)
不能超過 255 個字元
條件語句
經常地,當我們編寫代碼時,我們需要根據不同的判斷執行不同操作。我們可以使用條件語句完成這個工作。
在 VBScript 我們可以使用三種條件語句:
if 語句假如你希望在條件為 true 時執行一系列的代碼,可以使用這個語句。
if...then...else 語句假如你希望執行兩套代碼其中之一,可以使用這個語句。
if...then...elseif 語句假如你希望選擇多套代碼之一來執行,可以使用這個語句。
select case 語句假如你希望選擇多套代碼之一來執行,可以使用這個語句。
例子
If....Then.....Else
在下面的情況中,您可以使用 If...Then...Else 語句:
在條件為 true 時,執行某段代碼
選擇兩段代碼之一來執行時
如果需要在條件為 true 時只執行一行語句,可以把代碼寫為一行:
Ifi=10ThenMsgbox"Hello"
在上面的代碼中,沒有 .else.. 語句。我們僅僅讓代碼在條件為 true 時執行一項操作(當 i 為 10 時)。
假如我們需要在條件為 true 時執行不止一條語句,那么就必須在一行寫一條語句,然後使用關鍵字 "End If" 來結束這個語句:
Ifi=10ThenMsgbox"Hello"i=i+1EndIf
在上面的代碼中,同樣沒有 .else.. 語句。我們僅僅讓代碼在條件為 true 時執行了多項操作。
假如我們希望在條件為 true 時執行某條語句,並當條件不為 true 時執行另一條語句,就必須添加關鍵字 "Else":
Ifi=10ThenMsgbox"Hello"ElseMsgbox"Goodbye"EndIf
當條件為 true 時會執行第一段代碼,當條件不成立時執行第二段代碼(當 i 不等於 10 時)。
If....Then.....Elseif
假如你希望選擇多套代碼之一來執行,可以使用if...then...elseif語句:
Ifpayment="Cash"ThenMsgbox"Youaregoingtopaycash!"ElseIfpayment="Visa"ThenMsgbox"Youaregoingtopaywithvisa."ElseIfpayment="AmEx"ThenMsgbox"YouaregoingtopaywithAmericanExpress."ElseMsgbox"Unknownmethodofpayment."EndIf
Select Case
假如你希望選擇多套代碼之一來執行,可以使用 SELECT 語句:
SelectCasepaymentCase"Cash"Msgbox"Youaregoingtopaycash"Case"Visa"Msgbox"Youaregoingtopaywithvisa"Case"AmEx"Msgbox"YouaregoingtopaywithAmericanExpress"CaseElseMsgbox"Unknownmethodofpayment"EndSelect
以上代碼的工作原理:首先,我們需要一個簡單的表達式(常常是一個變數),並且這個表達式會被做一次求值運算。然後,表達式的值會與每個 case 中的值作比較,如果匹配,被匹配的 case 所對應的代碼會被執行。

系統管理示例

使用

WSH的FileSystemObject管理驅動器和檔案

枚舉驅動器:
SetobjFSO=CreateObject("Scripting.FileSystemObject")SetcolDrives=objFSO.DrivesForEachobjDriveincolDrivesWscript.Echo"Driveletter:"&objDrive.DriveLetterNext
刪除檔案:
SetobjFSO=CreateObject("Scripting.FileSystemObject")objFSO.DeleteFile("C:\FSO\ScriptLog.txt")

使用WMI管理計算機

查看c盤剩餘空間
SetobjWMIService=GetObject("winmgmts:")SetobjLogicalDisk=objWMIService.Get("Win32_LogicalDisk.DeviceID='c:'")Wscript.EchoobjLogicalDisk.FreeSpace
查看服務
SetcolServiceList=GetObject("winmgmts:").ExecQuery("SELECT*FROM"_&"Win32_ServiceWHEREState='Stopped'ANDStartMode='Auto'")

使用ADSI管理域

讀取OU中的伺服器成員
SetobjGroup=GetObject("LDAP://cn=Atl-Users,ou=HR,dc=NA,dc=fabrikam,dc=com")ForEachMemberinobjGroup.GetEx("member")Wscript.EchoMemberNext
讀取用戶賬戶的URL和電話號碼
SetobjGroup=GetObject("LDAP://cn=MyerKen,ou=HR,dc=NA,dc=fabrikam,dc=com")ForEachurlinobjGroup.GetEx("url")Wscript.EchourlNextForEachotherTelephoneinobjGroup.GetEx("otherTelephone")Wscript.EchootherTelephoneNext

優缺點

優點

由於VBScript由網頁瀏覽器解釋執行,不需要增大伺服器的負擔。
易學。
在所有2000 / 98SE以後的Windows版本都可直接使用。
可以使用其它程式和可使用的物件(尤其Microsoft Office)。

缺點

現在VBS無法作為電子郵件的附屬檔案了。Microsoft Outlook拒絕接受VBS為附屬檔案,收信人無法直接使用VBS附屬檔案。
VBS的各種編輯程器不受歡迎。
作業系統沒有任何特別的保護設施。VBS程式與其它JSEXE、BAT或CMD程式一樣對待。作業系統沒有監察惡意功能的能力。

相關詞條

熱門詞條

聯絡我們