Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
去年 10 月,微軟提前在“Windows 客戶端已棄用功能”列表中預(yù)告了一名新成員——VBScript 的存在,讓眾人做好棄用這門語言的準(zhǔn)備。
時(shí)光飛逝,近日,微軟正式發(fā)布了一篇長(zhǎng)文公告,分享了關(guān)于《棄用 VBScript:時(shí)間表和后續(xù)步驟》的最新動(dòng)態(tài),宣布 VBScript 的淘汰會(huì)分為「三步走」:一是最初會(huì)將 VBScript 作為 Windows 操作系統(tǒng)中的一項(xiàng)可選功能,默認(rèn)開啟;二是取消默認(rèn)開啟;三是計(jì)劃在 2027 年之后完全將該功能從 Windows 上移除。
毋庸置疑,此舉不僅意味著棄用 VBScript 已經(jīng)成為板上釘釘?shù)氖虑椋瑫r(shí)也標(biāo)志著一個(gè)時(shí)代的終結(jié)。
VBScript 的 28 年
回看過往,VBScript(Visual Basic Scripting Edition)是微軟在 1996 年首次推出的一種輕量級(jí)腳本語言。
在早期的互聯(lián)網(wǎng)時(shí)代,VBScript 被用來為網(wǎng)頁添加客戶端交互功能,類似于JavaScript。通常它被嵌入在 HTML 頁面中,并與 ASP 和 WSH(Windows Script Host)等技術(shù)結(jié)合使用。
這門語言也作為 Windows 操作系統(tǒng)中的系統(tǒng)組件提供,系統(tǒng)管理員一般都喜歡用 VBScript 編寫腳本來實(shí)現(xiàn)各種自動(dòng)化管理任務(wù),如文件操作、注冊(cè)表編輯、用戶賬戶管理和網(wǎng)絡(luò)配置等。
在 Office 應(yīng)用上,盡管 VBA 更為常用一些,但是也有不少開發(fā)者將 VBScript與 Office 應(yīng)用程序(如 Excel、Word 和 Outlook)集成,用于自動(dòng)化任務(wù)和宏編寫。
再者,在軟件測(cè)試領(lǐng)域,VBScript 被用作一些測(cè)試自動(dòng)化工具(如 QTP/UFT,現(xiàn)稱為 Micro Focus UFT)的腳本語言。測(cè)試人員使用 VBScript 編寫測(cè)試腳本來自動(dòng)化軟件測(cè)試流程。
受益于這些領(lǐng)域,外加簡(jiǎn)單易學(xué)的特性,VBScript 也成為不少程序員的啟蒙語言,快速理解編程概念和腳本編寫。
據(jù)最新的 TIOBE 榜單顯示,VBScript 經(jīng)過了 28 年的發(fā)展至今,使用率仍有 0.34%。這也意味著有不少遺留應(yīng)用程序、工具中仍然存在不少 VBScript 的代碼。
為什么要棄用 VBScript?
談及為什么要棄用 VBScript,正如我們此前報(bào)道的,一方面,VBScript 自身迭代已經(jīng)跟不上了時(shí)代的步伐,其中:
VBScript 的命令集相對(duì)較小,功能有限,難以處理復(fù)雜的任務(wù);
不支持面向?qū)ο缶幊蹋∣OP),這限制了其在大型應(yīng)用開發(fā)中的使用;
這門語言本身是微軟開發(fā),主要支持 Windows 系統(tǒng),這在如今的跨平臺(tái)開發(fā)環(huán)境中是一個(gè)嚴(yán)重的限制;
還缺乏模塊化和組件化、異步處理能力等多種能力...
更為讓人無奈的是,不同于現(xiàn)代腳本語言通常都有活躍的維護(hù)團(tuán)隊(duì),持續(xù)推出新版本,不斷改進(jìn)語言特性和性能,VBScript 缺乏持續(xù)的更新和維護(hù),它的最新版本還停留在 14 年前的 2010 年 5.8 版本。
相比之下,2006 年 PowerShell 的出現(xiàn)以及 JavaScript 的流行對(duì) VBScript 帶來了致命的打擊。
其中,PowerShell 不僅支持強(qiáng)大的腳本編寫功能,可以處理復(fù)雜的自動(dòng)化任務(wù),還內(nèi)置了大量功能強(qiáng)大的命令(Cmdlets),能夠直接與系統(tǒng)、文件、注冊(cè)表、服務(wù)和應(yīng)用程序進(jìn)行交互。PowerShell 基于 .NET 框架,能夠處理對(duì)象,使數(shù)據(jù)操作和傳遞更加直觀和高效。
另外,不像 VBScript 那樣局限于 Internet Explorer,已經(jīng)成為網(wǎng)頁開發(fā)的標(biāo)準(zhǔn)腳本語言 JavaScript 支持幾乎所有現(xiàn)代瀏覽器(如 Chrome、Firefox、Safari 和 Edge)。JavaScript 也擁有豐富的庫和框架(如 React、Angular 和 Vue),極大地簡(jiǎn)化了現(xiàn)代 Web 應(yīng)用的開發(fā)。
在二者的夾擊下,VBScript 幾乎無用武之地。
微軟項(xiàng)目經(jīng)理 Naveen Shankar 對(duì)此表示,“決定終止支持是為了過渡到更現(xiàn)代、更高效、更先進(jìn)的選項(xiàng)......多年來,技術(shù)不斷進(jìn)步,催生出更強(qiáng)大、更通用的腳本語言,如 JavaScript 和 PowerShell。這些語言提供了更廣泛的功能,更適合現(xiàn)代 Web 開發(fā)和自動(dòng)化任務(wù)。”
當(dāng)然,微軟在公告中特別做了解釋,其聲稱,棄用是產(chǎn)品生命周期中的一個(gè)階段,是指某一特性或功能不再處于積極開發(fā)階段,并可能在產(chǎn)品或在線服務(wù)的未來版本中刪除。
不過,「這是一個(gè)漸進(jìn)的過程,可能持續(xù)幾個(gè)月或幾年。被淘汰的功能通常會(huì)被更好、更先進(jìn)或功能性更強(qiáng)的功能所取代。在正式移除之前,該功能通常會(huì)繼續(xù)運(yùn)行并得到全面支持。移除后,該功能或能力將不再工作。移除過時(shí)的組件有助于降低復(fù)雜性,同時(shí)保證安全性和工作效率。」
棄用 VBScript 三步走
因此,微軟也給已經(jīng)使用了 VBScript 語言的應(yīng)用程序預(yù)留出足夠的過渡時(shí)間,其分享了三個(gè)階段,直至 VBScript 從未來的 Windows 操作系統(tǒng)版本中完全退役。
階段 1
在第一階段,VBScript FOD(按需功能)將默認(rèn)預(yù)安裝在所有 Windows 11 版本 24H2 及以上版本中。
在這一時(shí)間段內(nèi),如果你的應(yīng)用程序、進(jìn)程等對(duì) VBScript 有依賴,那么體驗(yàn)不會(huì)受到影響。
你可以在“開始” > “設(shè)置” > “系統(tǒng)” > “可選功能”中看到默認(rèn)啟用的 VBScript FOD。
Windows系統(tǒng)設(shè)置的屏幕截圖顯示VBScript安裝在可選功能下
微軟計(jì)劃到 2027 年,VBScript FOD 將不再默認(rèn)啟用。這意味著,如果到那時(shí)你的應(yīng)用程序仍然依賴 VBScript,則需要手動(dòng)啟用 FOD,以防止應(yīng)用程序和進(jìn)程出現(xiàn)問題:
轉(zhuǎn)到開始>設(shè)置>系統(tǒng)>可選功能。
選擇頂部“添加可選功能”選項(xiàng)旁邊的查看功能。
在搜索對(duì)話框中輸入“VBSCRIPT”,然后選擇結(jié)果旁邊的復(fù)選框。
要啟用已禁用的功能,請(qǐng)按下一步。
VBScript 將從 Windows 的未來版本中退役并淘汰。這意味著 VBScript 的所有動(dòng)態(tài)鏈接庫(.dll 文件)都將被刪除。因此,依賴 VBScript 的項(xiàng)目將停止運(yùn)行。
當(dāng)進(jìn)入第三階段時(shí),微軟建議所有使用 VBScript 的項(xiàng)目必須進(jìn)行遷移。
如果你有依賴 VBScript 自動(dòng)執(zhí)行任務(wù)的網(wǎng)站或應(yīng)用程序;或者使用 VBScript 自定義操作作為安裝包中的一項(xiàng)功能,微軟建議可以遷移到 PowerShell。
由于 VBScript 功能目前僅限于 IE 11 之前的瀏覽器,因此在 2027 年之后,微軟官方建議這類網(wǎng)頁統(tǒng)一遷移并使用 JavaScript 語言。
VBScript 的退役,對(duì)你是否有影響?
隨著 VBScript 的棄用,不少程序員感嘆:
“在 Windows 和 office 的世界里,vbs 真是一個(gè)不錯(cuò)的東西”;
“21年前寫下第一行 VBScript,紀(jì)念我逝去的青春”。
不過,也有網(wǎng)友對(duì)微軟的建議并不買賬:
我覺得 PowerShell 這門語言啰嗦而且不符合人體工程學(xué)。這艘船已經(jīng)揚(yáng)帆起航,但我希望微軟能做些什么,讓 Windows 自動(dòng)化更接近其他平臺(tái),這樣它就能從其他平臺(tái)上的優(yōu)秀軟件中受益。
看來,VBA 將繼續(xù)作為 MS Office 的編程前端語言而存在,這實(shí)在令人遺憾。他們不久前宣布 Excel 支持 Python,我希望它能作為 VBA 的可行替代品得到更好的推廣。
迄今為止,我一直避免在向最終用戶分發(fā)的任何文件中使用 Powershell,因?yàn)?Windows 默認(rèn)禁用未簽名腳本的執(zhí)行。使用 VBScript 或 BAT 文件自動(dòng)執(zhí)行基本任務(wù)更容易,因?yàn)檫@些腳本可以不簽名運(yùn)行...... 我想,如果微軟現(xiàn)在重新考慮默認(rèn)啟用 Powershell 腳本執(zhí)行功能,那也未免太奢望了。
對(duì)此,你如何看待 VBScript 的淘汰?對(duì)你的應(yīng)用程序是否有影響?
來源:
https://techcommunity.microsoft.com/t5/windows-it-pro-blog/vbscript-deprecation-timelines-and-next-steps/ba-p/4148301
TML <script> 標(biāo)簽被用來向 HTML 中插入 VBScript。
HTML 中的 VBScript
如需在 HTML 中插入 VBScript,腳本必須寫在標(biāo)準(zhǔn)的 <script> 和 </script> 標(biāo)簽之間。
在 <script> 標(biāo)簽中,請(qǐng)使用 type 屬性來定義腳本語言 "text/vbscript":
<html>
<body>
<script type="text/vbscript">
...
</script>
</body>
</html>
IE 將解釋和執(zhí)行 <script> 和 </script> 之間的 VBScript 代碼。
VBScript 不應(yīng)該被用作客戶端腳本語言! 在這里,我們使用僅適用于 IE 的 VBScript 的用于學(xué)習(xí)。 |
RPA實(shí)施中,郵件的自動(dòng)化是必不可少的一部分內(nèi)容。通過郵件,可以實(shí)現(xiàn)人與機(jī)器人之間的信息互通。
有關(guān)發(fā)送郵件,有多種多樣的方式。在開始之前,先了解一下在AA中發(fā)送郵件都有哪些實(shí)現(xiàn)方式。
作為RPA本質(zhì)的一種方式就是模擬人的操作,所以可以通過AA打開郵箱,創(chuàng)建郵件,編寫郵件內(nèi)容,添加附件等一系列操作來完成,此方法中,主要使用到AA的Object Clone命令,腳本如下截圖。
缺點(diǎn): 此方法執(zhí)行效率低,易出錯(cuò),針對(duì)于不同版本的outlook或其他郵件客戶端,需要適配并修改代碼。
在AA中也有相應(yīng)的Command,如 "Send Email",此命令是通過SMTP發(fā)送郵件,需要在客戶端中配置SMTP服務(wù)器,這里使用163郵箱進(jìn)行示例,配置如下:打開AAE客戶端,點(diǎn)擊Tools->Options->Email settings
腳本如下:
結(jié)果:
缺點(diǎn):
在Automation Anywhere的Bot應(yīng)用商店中,有很多封裝好的Task/Metabots,如下圖,可以通過搜索找到自己想要的Bots。
除了以上幾種方式,可以使用其他語言來實(shí)現(xiàn)郵件發(fā)送的功能。如用C#編寫,然后打包成dll,之后在Metabot中進(jìn)行方法的調(diào)用;或者使用VBS腳本,可以用腳本調(diào)用outlook發(fā)送,或者使用windows自帶的CDO.Message對(duì)象來發(fā)送。
所以最終采用了使用VBS調(diào)用windows自帶的CDO.Message對(duì)象來發(fā)送SMTP郵件,這樣可以脫離outlook組件或者相關(guān)dll,也不需要其他外部的依賴,只要是windows系統(tǒng)都可以直接進(jìn)行調(diào)試。
調(diào)試VBS方法:打開cmd,運(yùn)行wscript C:\RPA\SendSMTPEmail.vbs進(jìn)行調(diào)試
AA中調(diào)用VBS腳本,在傳入?yún)?shù)時(shí)候,如果參數(shù)的值中存在空格,則會(huì)出現(xiàn)傳參錯(cuò)誤的異常(因?yàn)镽un Script命令傳參是以空格作為分隔符的),也可以參考知識(shí)星球中這篇文章。所以在使用VBS腳本發(fā)送郵件時(shí),需要使用AA腳本動(dòng)態(tài)生成VBS腳本文件,然后發(fā)送郵件。
首先編寫并調(diào)試VBS腳本,腳本代碼如下:
在完成VBS代碼調(diào)試之后,需要將其中的一些變量替換掉,之后編寫AA腳本,在AA腳本中,需要將上面的VBS代碼通過Log To File的命令寫入到臨時(shí)的文件中,然后使用Run Script命令執(zhí)行臨時(shí)的VBS腳本。(文件可以在知識(shí)星球中下載,鏈接:https://t.zsxq.com/E2rrFu7)
在Metabot中的參數(shù)有如下:
在AA中發(fā)送郵件的方式多種多樣,用戶可以依據(jù)自己的實(shí)際情況,選擇合適的方法以提高開發(fā)效率和機(jī)器人的執(zhí)行效率。在選擇使用VBS/JavaScript腳本方式執(zhí)行函數(shù)或者功能時(shí),可以通過動(dòng)態(tài)生成腳本的方式來避免一些傳參的異常。
文中涉及到的代碼都可以在知識(shí)星球中下載,鏈接:https://t.zsxq.com/E2rrFu7
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。