位元詩人 [VBScript] 程式設計教學:21 世紀的 VBScript

Facebook Twitter LinkedIn LINE Skype EverNote GMail Yahoo Email

VBScript 是微軟 (Microsoft) 以 Visual Basic (在引入 .NET Framework 之前) 為基礎所開發的一種程式語言,原本的目標是用來網頁程式,像是用於伺服端的 ASP.NET 程式和內建在 Internet Explorer 中做為客戶端程式。

以這個目標來說,VBScript 可以說是已經失敗,新的 ASP.NET Core 是採用 C# 語言的 MVC 網頁框架,在這個新的框架中已經完全看不到 VBScript 的影子;而 Internet Explorer 11 也將 VBScript 的支援移除了。那麼,我們可以說 VBScript 已經死了嗎?

以網頁程式來說,除了維護一些舊專案,應該沒有理由再用 VBScript 來寫。不過,做為進階使用者 (power users) 的腳本語言,VBScript 仍有可用之處。

Windows 系統上原生的腳本語言有四個:

  • Batch
  • VBScript
  • JScript (註)
  • PowerShell

註:JScript 即微軟版本的 JavaScript,和標準的 ECMAScript (JavaScript) 略有不同;目前來說,學習 JScript 的實用價值不高。

Batch 是 DOS 時代的產物,可用的功能相對較少。PowerShell 是微軟近年來力推的腳本語言,但不是每台 Windows 主機都會裝。由於 JScript 和正統 JavaScript 不完全相容,學習價值很低。而 VBScript 在 Windows 98 之後就內建在系統中,在 Windows XP SP3 以上的版本即支援 5.7 版 (參考這裡)。

雖然 VBScript 已經不會加入新的特性,但仍然會修復 bug 和安全性更新。此外,我們可以假定 VBScript 所寫的腳本可運行在大部分 Windows 系統上。

註:雖然 Windows 10 才是現在和未來的主流,但到目前 (2018 年中) 為止,Windows 7 仍有 43% 左右的市佔率,甚至比 Windows 10 的 31% 更高。

在 Windows 系統上執行 VBScript 的環境為 Windows Script Host (WSH),WSH 預設可執行 VBScript 和 JScript 兩種腳本語言。除此之外,還可以安裝其他的語言,像是 Perl、Python、Rexx 等。

筆者認為,既然要用 WSH,還是用內建的語言比較好,比起 VBScript,其他語言的範例相對來說會更少。WSH 將作業系統的元件包成物件,透過 VBScript 或 JScript (或其他語言) 來呼叫,藉此自動化一些系統相關任務。

註:VBScript 相關的資訊在微軟的網站上不太好找,筆者將其連結放在這裡

VBScript 一般是用來寫於命令列執行的非互動性腳本,不過,我們也可以透過 HTML Application 來撰寫圖形介面程式。HTML Application 背後使用 Internet Explorer 來運作,雖然和一般網頁的寫法差不多,但 Windows 系統將 HTML Application 視為一般的應用程式,可直接使用系統上的資源。

HTML Application 算是相當早期的桌面端網頁應用程式,目前比較熱門的是用 Electron (註) 來寫跨平台桌面端程式;相較起來,HTML Application 僅限 Windows 平台能用,對開發者的吸引力就沒那麼大。不過,如果只是要用 VBScript 寫寫小程式,仍然可以考慮 HTML Application。

註:Electron 是桌面端的 JavaScript 框架,好處是可沿用網頁技術來寫桌面軟體。

註:HTML Application 在微軟網站的連結放在這裡

關於作者

身為資訊領域碩士,位元詩人 (ByteBard) 認為開發應用程式的目的是為社會帶來價值。如果在這個過程中該軟體能成為永續經營的項目,那就是開發者和使用者雙贏的局面。

位元詩人喜歡用開源技術來解決各式各樣的問題,但必要時對專有技術也不排斥。閒暇之餘,位元詩人將所學寫成文章,放在這個網站上和大家分享。