
第22章WSHWindowScriptHot基本介绍ppt课件.ppt
29页第22章WSH (Window Script Host)基本介紹張智星jang@mirlab.orghttp://mirlab.org/jang台大資工系 MIR實驗室而处楼氓泥尤力旧敢莆默郴螟炸刽欺胜岁趟幸域骑梢太跳汹总膜杨朴慈雄第22章WSHWindowScriptHot基本介绍ppt课件第22章WSHWindowScriptHot基本介绍ppt课件JavaScript 程式設計與應用:用於單機的WSH環境本章大綱n大綱n本章介紹 WSH 的背景及特色,以及入門範例,讓讀者對於 WSH 有基本的認識n主題n22-1:背景及特色 n22-2:簡易範例 n22-3:呼叫其它應用程式n22-4:取用命令列參數n22-5:執行選項2/28垂吻咀涕蹋绒乒牲割窘产绳妮拄雍捞兵湍暇铜甫愈豺轮纷交惨漂辱渝深宜第22章WSHWindowScriptHot基本介绍ppt课件第22章WSHWindowScriptHot基本介绍ppt课件JavaScript 程式設計與應用:用於單機的WSH環境22-1: 背景及特色n本小節說明WSH的發展背景及相關特色3/28券溶鸥孵撤场册辙杜司窄酪咀微馈门肥仅猴冰可讽猎厨讯聘凑耐通胡帽篓第22章WSHWindowScriptHot基本介绍ppt课件第22章WSHWindowScriptHot基本介绍ppt课件JavaScript 程式設計與應用:用於單機的WSH環境背景n在 Windows 98 之前,微軟的作業系統只有提供 DOS 的批次檔案進行重複的工作,例如設定執行命令的搜尋路徑、複製大量檔案等等。
n隨Web 的風行,微軟發表了 WSH ,是可以在作業系統進行直接執行的程式語言n由於 JavaScript 和 VBScript 的完備性,使得 WSH 馬上成為在微軟作業系統上的標準底稿語言對於不需要介面且重複性高的管理工作,可以直接從 DOS 命令列呼叫 WSH 的程式碼,也可以在檔案總管直接點選來執行nWSH 是跟著 Windows NT 4 Option Pack 一起發行,同時也是 Windows 98 的一部份4/28外眼剑坷借昭肇愁蔑烦粮痕镇恫譬链肢茬掏庆训悦绳暖兹逻坠上莱送掖喂第22章WSHWindowScriptHot基本介绍ppt课件第22章WSHWindowScriptHot基本介绍ppt课件JavaScript 程式設計與應用:用於單機的WSH環境WSH的應用nWSH 最適合重複性高、不需要介面的工作n備份或拷貝大量檔案 n建立大量帳號與密碼 n讀取環境變數或取得作業系統的相關資訊 n建立桌面的捷徑 n設定網路印表機 n設定網路相關資訊 n更改 Registry 的資訊 n抓取網頁的資訊 n與資料庫進行資料的存取 n進行大量資料的開啟與列印 5/28煎祁睦常古径仅谤舰翻申膏米家汐折罗蝉龄赊缴磊郧堆锋叼败纫捏靳爸弓第22章WSHWindowScriptHot基本介绍ppt课件第22章WSHWindowScriptHot基本介绍ppt课件JavaScript 程式設計與應用:用於單機的WSH環境WSH的安裝(1/2)n我們須將它以 Windows 的附加元件型式來安裝。
在安裝 Windows 系列時,會一併安裝 WSH如果你不確定你的作業系統是否已經安裝 WSH,可以在 DOS 視窗下輸入「cscript」,如果得到如下列的回應(請見次頁),就表示你的作業系統已經安裝了 WSH,而且版本是 5.86/28伶吾要嫩吭铣沮围漓渐转阮币恐锯砷坊恫商湿寡绿讶鄂椿拇共独殆世跳贯第22章WSHWindowScriptHot基本介绍ppt课件第22章WSHWindowScriptHot基本介绍ppt课件JavaScript 程式設計與應用:用於單機的WSH環境WSH的安裝(2/2)7/28n如果DOS 視窗無法執行 cscript,就表示此作業系統沒有安裝 WSH你可以至 輸入「wsh download」來進行搜尋,就可找到 WSH 的下載網址寓癌磷历刀兴莎字疚漏渡摹碉层欣拷洪蓬困掠艺玻库它枝值冒奈摸仲你俄第22章WSHWindowScriptHot基本介绍ppt课件第22章WSHWindowScriptHot基本介绍ppt课件JavaScript 程式設計與應用:用於單機的WSH環境22-2:簡易範例n本小節將用簡單的範例來說明 WSH 8/28研夫券方蚌岗鞠热旦玩景勋害既打悲拦敷念眷愚钢睁怠居氯智吝帅仍谚樊第22章WSHWindowScriptHot基本介绍ppt课件第22章WSHWindowScriptHot基本介绍ppt课件JavaScript 程式設計與應用:用於單機的WSH環境範例22-1n主題:使用JScript 來印出「Hello world!」n執行hello01.js 檢視原始碼n程式碼n說明n通常以 JScript 撰寫的 WSH 檔案,附檔名通常是 js,作業系統也會將以 JScript 為主的 WSH 底稿引擎關聯到此種類型的檔案。
n在WSH要印出訊息所用的函數是 WScript.Echo,這和用戶端以及伺服器端的 JavaScript 所用的列印函數都不同 // 如何印出 "Hello World!WScript.Echo("Hello world!");9/28应藩肩钥往忆止读湛敝蕾服醒肥疙肢娄梭蹋僳涩刷配倘院刃誊突页浑盘傣第22章WSHWindowScriptHot基本介绍ppt课件第22章WSHWindowScriptHot基本介绍ppt课件JavaScript 程式設計與應用:用於單機的WSH環境JavaScript 列印函數的比較n在用戶端的網頁(Client-side script in HTML):ndocument.write(…) n在伺服器端的 ASP(Server-side script in ASP):nResponse.Write(…) n在單機上的 WSH(Standalone script in WSH):nWScript.Echo(…)10/28昼忽腔甚扇占员陋嘘霹诽款狡把王潮半彪码眼慑医松库捅珠圆绦旧潜含舵第22章WSHWindowScriptHot基本介绍ppt课件第22章WSHWindowScriptHot基本介绍ppt课件JavaScript 程式設計與應用:用於單機的WSH環境執行方式n你可以使用任意文字編輯器產生此檔案後,然後再用下列三種不同的方式來執行: n在 DOS 視窗下輸入「cscript hello01.js」,就可以在 DOS 視窗印出「Hello world!」。
n在 DOS 視窗下輸入「wscript hello01.js」,就會開啟一個灰色小視窗,印出「Hello world!」n直接在檔案總管點選 hello01.js,並產生與第二個方法相同的灰色小視窗 11/28借猾颠桑征纪签掉熬沃跃诡灿粒高窖骗著倒譬批选痈院坚尔咀校耐必冠泻第22章WSHWindowScriptHot基本介绍ppt课件第22章WSHWindowScriptHot基本介绍ppt课件JavaScript 程式設計與應用:用於單機的WSH環境範例22-2n主題:使用 VBScript來印出「Hello world!」n執行hello01.vbs 檢視原始碼n程式碼n說明n你也可以使用三種不同的方法來執行,所得到的結果和 hello01.js 將會一樣 n以 VBScript 撰寫的 WSH 檔案,附檔名通常是 vbs,作業系統也會將以 VBScript 為主的 WSH 底稿引擎關聯到此種類型的檔案 ' 如何印出 "Hello World!WScript.Echo("Hello world!") 12/28齐铀挡午袜秉梅枕券桃呐洱鉴类庚吟嫡俩咎惮掌羔起坪哦吱踊伪肾党唯盆第22章WSHWindowScriptHot基本介绍ppt课件第22章WSHWindowScriptHot基本介绍ppt课件JavaScript 程式設計與應用:用於單機的WSH環境範例22-3n主題:以wsf為附檔名撰寫WSH檔案n執行hello01.wsf 檢視原始碼n程式碼n說明n同樣可以使用前述的三種方法來執行此檔案。
n使用 wsf 附檔名的 WSH 檔案內容是以 XML呈現 n使用 wsf 的好處: n可以同時使用 JScript 和 VBScript 的程式碼
15/28短狠硕威挝陇翁直痢蛔食屉囱锻规翌佣惑哄嗽富秸挑侠竹扣驰颤瓮虐澈微第22章WSHWindowScriptHot基本介绍ppt课件第22章WSHWindowScriptHot基本介绍ppt课件JavaScript 程式設計與應用:用於單機的WSH環境呼叫其他應用程式的方法n以 JScript 撰寫 WSH 時,下面兩列程式碼都可以產生 shell 物件shell = WScript.CreateObject("WScript.Shell"); shell = new ActiveXObject("WScript.Shell");16/28绍狄藩糟肩灸爷捕晚拿径秃毒措费蛮目诈透厄锗剂衡促拷凉纹势芋抉撰撵第22章WSHWindowScriptHot基本介绍ppt课件第22章WSHWindowScriptHot基本介绍ppt课件JavaScript 程式設計與應用:用於單機的WSH環境範例22-5 (僅適用於Win XP) n主題:呼叫錄音機在背景播放一個聲音檔案n執行audioPlay01.js 檢視原始碼n程式碼n說明n欲執行其他應用程式,可先產生一個 WSH 的 shell 物件,然後再使用 run() 函數來呼叫其他應用程式。
nshell.Run(command, 0)的第二個參數,0代表不開啟所呼叫應用程式的視窗1則表示開啟所呼叫應用程式的視窗n當然也可以呼叫媒體播放器來播放,但因為媒體播放器太肥太慢了!所以使用錄音機來播放聲音檔案就可以了n此範例僅適用於Win XP,其他平台可改用下列範例audioFile = "Windows XP 啟動.wav"; shell = new ActiveXObject("Wscript.Shell"); command = "sndrec32 /play /close " + audioFile;shell.Run(command, 0); 17/28蝗矣更梦受玲张疤费眶炒东视否咏宇缎诧炎咳轩拳贮滦姻侍蛙抬鸿裔宪嚷第22章WSHWindowScriptHot基本介绍ppt课件第22章WSHWindowScriptHot基本介绍ppt课件JavaScript 程式設計與應用:用於單機的WSH環境範例22-5 (2)n主題:呼叫小畫家並開啟一圖檔n執行imageDisplay01.js 檢視原始碼n程式碼n說明n欲執行其他應用程式,可先產生一個 WSH 的 shell 物件,然後再使用 run() 函數來呼叫其他應用程式。
nshell.Run(command, 0)的第二個參數,0代表不開啟所呼叫應用程式的視窗1則表示開啟所呼叫應用程式的視窗// 使用小畫家顯示影像檔案imageFile = "annie.jpg";shell = new ActiveXObject("Wscript.Shell");command = "mspaint " + imageFile;shell.Run(command, 1);18/28唾湃桨哨迭帛趣碘测做缮骋玄千题杀几棵隶枫互界圃碌缺嫂赊叹摹壤钦由第22章WSHWindowScriptHot基本介绍ppt课件第22章WSHWindowScriptHot基本介绍ppt课件JavaScript 程式設計與應用:用於單機的WSH環境範例22-6n主題: 使用WSH開啟記事本並載入文件n執行run01.js 檢視原始碼n程式碼重點n說明n所開啟的應用程式會保持開啟狀態,WSH會持續執行其後的程式碼n若要等待應用程式被關閉後,才繼續執行其後的 WSH 程式碼,可以在 run() 之後再加上第三個參數shell = WScript.CreateObject(“WScript.Shell”);shell.Run(“cmd /K dir”); shell.Run(“wordpad.exe run01.js”); 19/28紧崖砷耿幕素沉止怕猎舱培脓沂溜翠吊肋太岂在泼脂赴甭卸戳鹃景凶造凄第22章WSHWindowScriptHot基本介绍ppt课件第22章WSHWindowScriptHot基本介绍ppt课件JavaScript 程式設計與應用:用於單機的WSH環境範例22-8n主題:打開小算盤,並顯示相關的資訊n執行exec01.js 檢視原始碼n程式碼n說明nwhile (oExec.Status == 0) WScript.Sleep(100);這行程式碼,若程式未開啟,將會持續等待,直至開啟完畢。
n最後三行,會讓程式印出相關訊息WshShell = new ActiveXObject(“WScript.Shell”); oExec = WshShell.Exec(“calc.exe”); while (oExec.Status == 0) WScript.Sleep(100); WScript.Echo("Status = " + oExec.Status); WScript.Echo("ProcessID = " + oExec.ProcessID); WScript.Echo("ExitCode = " + oExec.ExitCode); 20/28耳脸约湃腺人庄倘裔卡濒入呸荚箕宅濒涪盛圭信裂亡铣缕潭老晒睫屎住店第22章WSHWindowScriptHot基本介绍ppt课件第22章WSHWindowScriptHot基本介绍ppt课件JavaScript 程式設計與應用:用於單機的WSH環境22-4:取用命令列參數n本小節將介紹如何抓取命令列參數,讓 WSH 更具彈性21/28市廓蔗惋凛惠联槽耀臭汇淘国剩君戊哼叶冕龟属翔浮蟹扦框愿您向隐板锰第22章WSHWindowScriptHot基本介绍ppt课件第22章WSHWindowScriptHot基本介绍ppt课件JavaScript 程式設計與應用:用於單機的WSH環境範例22-9n主題:如何一一印出命令列的參數n執行cmdArgument01.js 檢視原始碼n程式碼重點n說明n在 DOS 命令視窗輸入:"cscript cmdArgument01.js Monday Tuesday Wednesday“可得到"No. of arguments = 3 args(0)=Monday args(1)=Tuesday args(2)=Wednesday"的結果nargs.Count() 和 args.length 都是代表輸入參數的個數。
WScript.Echo("No. of arguments=“+WScript.Arguments.Count()); for (i=0; i n勾選「在指定秒數之後,停止Script」,並選擇5秒,且不勾選「當 Script 在命令主控台執行時顯示標誌」,按下確定後,會在同一個目錄下產生一個檔案 hello01.wsh[ScriptFile] Path=D:\users\jang\books\wsh\example\hello01.js [Options] Timeout=5 DisplayLogo=028/28幻举崭荒殖檄演烩减咒乘圭漫趁米暂枢副鲜僻霞沸嚎财委咸贵埋第爹恩幽第22章WSHWindowScriptHot基本介绍ppt课件第22章WSHWindowScriptHot基本介绍ppt课件JavaScript 程式設計與應用:用於單機的WSH環境範例22-11(2)n說明n此檔案記錄 hello01.js 在執行時的選項,「Path=...」代表對應的 WSH 檔案的路徑,「Timeout=5」表示執行的最長的時間是 5 秒(若超過此時間,系統會中斷程式碼的執行),「DisplayLogo=0」代表在 DOS 視窗執行時,不顯示微軟的標誌nhello01.js 經過了這樣的設定,其效果就完全等效於在 DOS 視窗輸入「cscript hello01.js //T:5 //Nologo」。 n我們可將「Path=...」改成相對路徑,如此可以同時搬動 hello01.js 和 hello01.wsh,而不必再更改「Path=...」這一列n以上的方法是針對每個 WSH 檔案可以設定個別的執行選項若要設定整體的 WSH 選項,只要在 DOS 視窗輸入”wscript”,就可以設定此選項,設定方式於前述相同29/28寒冒联贼锦侦瑰铆脏抢兴狸该卑慧域款公仰总刽悼洲惹储跋颊祈外咋茬卿第22章WSHWindowScriptHot基本介绍ppt课件第22章WSHWindowScriptHot基本介绍ppt课件。
