第22章 WSH (Window Script Host) 基本介紹

Slides:



Advertisements
Similar presentations
MATLAB 程式設計 時間量測 清大資工系 多媒體資訊檢索實驗室.
Advertisements

張智星 台大資工系 MIR實驗室 第24章 WSH 範例精選 張智星 台大資工系 MIR實驗室.
Chapter 5 迴圈.
第 1 章 使用 APP INVENTOR 2 開發 ANDROID APP
臺北市立大學 資訊科學系(含碩士班) 賴阿福
程式設計概論 1.1 程式設計概論 程式語言的演進 物件導向程式 程式開發流程 1.2 C++開發工具
VMware Player 安裝說明 2018/11/14.
物件導向程式設計 CH1, CH2.
PDFCreator安裝教學.
Q101 在701 SDX Linux上的標準安裝與使用程序v2
JDK 安裝教學 (for Win7) Soochow University
第1章 認識Arduino.
資料庫管理 操作DBMS 指導教授:楊維邦  助教:廖皓翔.
第22章 WSH (Window Script Host) 基本介紹
電腦硬體裝修乙級 第二站-伺服器端系統安裝與環境設定
在NS-2上模擬多個FTP連線,觀察頻寬的變化
R教學 安裝RStudio 羅琪老師.
ASP.NET基本設計與操作 建國科技大學 資管系 饒瑞佶 2007年.
安裝JDK 安裝Eclipse Eclipse 中文化
自由軟體介紹(一) 把flash通通帶回家 報告人:陳俊銘.
Windoop操作步驟 於作業系統Windows 10 專業版.
網頁切換移轉 JS vs. ASP.NET.
Word與PowerPoint的結合 建功國小 陳旻杰 健行國小 張慧如.
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A.
連結資料庫管理系統.
Android App簡介及 App Inventor 2體驗 靜宜大學資管系 楊子青
第二章 SPSS的使用 2.1 啟動SPSS系統 2.2 結束SPSS系統 2.3 資料分析之相關檔案 2.4 如何使用SPSS軟體.
系統設定 IE8相容性檢視
Tense Buster 操作手冊 畹禾有限公司.
雲端計算.
Fortran 程式語言 之 編與譯(二) 張基昇.
網頁切換移轉 JS vs. ASP.NET.
電腦攻擊與防禦 使用電腦教室VMware軟體說明.
Java程式設計 Eclipse.
VS.NET 2003 IDE.
App Inventor 2初體驗 靜宜大學資管系 楊子青
網路程式設計期末project B 張芸菱.
Linux作業系統 電腦教室Linux使用說明.
PowerPoint 2019/4/9.
第一個cordova project Cordova project建立與平台設定,均藉由cli(command line interface來完成 建立project請打開命令提示字元視窗應輸入下列命令 cordova create hello tw.edu.stust.mis.hello HelloWorld.
資料來源 2 網路過濾軟體之安裝說明 資料來源 2.
表格(HTML – FORM).
張智星 清大資工系 多媒體檢索實驗室 Tree Net Construction 張智星 清大資工系.
安裝 / 操作 flashget SOP (以Win 7 作業系統為範例)
期末考.
個人網路空間 資訊教育.
CVPlayer下載及安裝& IVS操作說明
FTP使用教學 簡介: 軟體名稱:FileZilla 軟體性質:Freeware 版本: 繁體中文版
講師:高宏宣 “景文科技大學應用英語系” 『電腦輔助教學』課程講義 Gold WAVE音訊軟體 講師:高宏宣
Video 影像 (VideoPlayer 影像播放器、Camcorder 錄影機) 靜宜大學資管系 楊子青
取得與安裝TIDE 從TIBBO網站取得TIDE
Text To Speech (TTS, 文字轉 語音)、讀簡訊 靜宜大學資管系 楊子青
MiRanda Java Interface v1.0的使用方法
編輯網頁可用那些應用程式? 記事本 Word FrontPage Dreamweaver.
基本指令.
1. 查詢個人電腦版本 1.進入控制台 2.點選“所有控制台項目” 3.點選“系統”.
Chapter 15 檔案存取 LabVIEW中的檔案存取函數也可將程式中的資料儲存成Excel或Word檔。只要將欲存取的檔案路徑位址透過LabVIEW中的路徑元件告訴檔案存取函數後,LabVIEW便可將資料存成Excel或Word檔;當然也可以將Excel或Word檔的資料讀入LabVIEW的程式中。
2018 Operating Systems 作業系統實習 助教:林欣穎 實驗室:720A.
Brief Guide of FrontPage
國立台灣大學 關懷弱勢族群電腦課程 By 資訊工程 黃振修
安裝JDK 配置windows win7 環境變數
Activity的生命週期: 播放音樂與影片 靜宜大學資管系 楊子青
張智星 台大資工系 多媒體檢索實驗室 第十三章 函數與程式碼的重複使用 張智星 台大資工系 多媒體檢索實驗室.
開發Java程式語言的工具 JDK.
NFC (近場通訊, Near Field Communication) 靜宜大學資管系 楊子青
Chapter 4 Multi-Threads (多執行緒).
張智星 台大資工系 MIR實驗室 第23章 程式碼的重複使用 張智星 台大資工系 MIR實驗室.
Unix指令4-文字編輯與程式撰寫.
Develop and Build Drives by Visual C++ IDE
Quantum-Wise軟體教學.
Presentation transcript:

第22章 WSH (Window Script Host) 基本介紹 張智星 jang@cs.nthu.edu.tw http://www.cs.nthu.edu.tw/~jang 清大資工系 多媒體檢索實驗室

本章大綱 大綱 主題 本章介紹 WSH 的背景及特色,以及入門範例,讓讀者對於 WSH 有基本的認識。 22-1:背景及特色 22-2:簡易範例 22-3:呼叫其它應用程式 22-4:取用命令列參數 22-5:執行選項

22-1: 背景及特色 本小節說明WSH的發展背景及相關特色。

背景 在 Windows 98 之前,微軟的作業系統只有提供 DOS 的批次檔案進行重複的工作,例如設定執行命令的搜尋路徑、複製大量檔案等等。 隨Web 的風行,微軟發表了 WSH ,是可以在作業系統進行直接執行的程式語言。 由於 VBScript 和 JavaScript 的完備性,使得 WSH 馬上成為在微軟作業系統上的標準底稿語言。對於不需要介面且重複性高的管理工作,可以直接從 DOS 命令列呼叫 WSH 的程式碼,也可以在檔案總管直接點選來執行。 WSH 是跟著 Windows NT 4 Option Pack 一起發行,同時也是 Windows 98 的一部份。

WSH的應用 WSH 最適合重複性高、不需要介面的工作。 備份或拷貝大量檔案。 建立大量帳號與密碼。 讀取環境變數或取得作業系統的相關資訊。 建立桌面的捷徑。 設定網路印表機。 設定網路相關資訊。 更改 Registry 的資訊。 抓取網頁的資訊。 與資料庫進行資料的存取。 進行大量資料的開啟與列印。

WSH的安裝 (1) 我們須將它以 Windows 的附加元件型式來安裝。在安裝 Windows 系列時,會一併安裝 WSH。如果你不確定你的作業系統是否已經安裝 WSH,可以在 DOS 視窗下輸入「cscript」,如果得到如下列的回應,就表示你的作業系統已經安裝了 WSH,而且版本是 5.6。 連結: 如果DOS 視窗無法執行 cscript,就表示此作業系統沒有安裝 WSH。你可以至 www.google.com 輸入「wsh download」來進行搜尋,就可找到 WSH 的下載網址。

WSH的安裝 (2) 若已安裝wsh會出現下圖

22-2:簡易範例 本小節將用簡單的範例來說明 WSH 。

範例22-1 主題:使用JScript 來印出「Hello world!」 執行結果 檢視原始碼 程式碼 說明 執行結果 檢視原始碼 程式碼 說明 通常以 JScript 撰寫的 WSH 檔案,附檔名通常是 js,作業系統也會將以 JScript 為主的 WSH 底稿引擎關聯到此種類型的檔案。 在WSH要印出訊息所用的函數是 WScript.Echo,這和用戶端以及伺服器端的 JavaScript 所用的列印函數都不同。 WScript.Echo("Hello world!");

JavaScript 列印函數的比較 在用戶端的網頁:document.write() 在伺服器端的 ASP:Response.Write() 在單機上的 WSH:WScript.Echo()

執行方式 你可以使用任意文字編輯器產生此檔案後,然後再用下列三種不同的方式來執行: 在 DOS 視窗下輸入「cscript hello01.js」,就可以在 DOS 視窗印出「Hello world!」。 在 DOS 視窗下輸入「wscript hello01.js」,就會開啟一個灰色小視窗,印出「Hello world!」。 直接在檔案總管點選 hello01.js,並產生與第二個方法相同的灰色小視窗。

範例22-2 主題:使用 VBScript來印出「Hello world!」 執行結果 檢視原始碼 程式碼 說明 執行結果 檢視原始碼 程式碼 說明 你也可以使用三種不同的方法來執行,所得到的結果和 hello01.js 將會一樣。 以 VBScript 撰寫的 WSH 檔案,附檔名通常是 vbs,作業系統也會將以 VBScript 為主的 WSH 底稿引擎關聯到此種類型的檔案。 //如何印出 "Hello World! WScript.Echo("Hello world!")

範例22-3 主題:以wsf為附檔名撰寫WSH檔案 執行結果 檢視原始碼 程式碼 說明 同樣可以使用前述的三種方法來執行此檔案。 執行結果 檢視原始碼 程式碼 說明 同樣可以使用前述的三種方法來執行此檔案。 使用"wsf"附檔名的 WSH 檔案內容是以 XML呈現 。 使用 wsf 的好處如下: 可以同時使用 VBScript 和 JScript 的程式碼。 可以包含其它程式檔案。 <job><script language="JScript"> WScript.Echo("Hello World!"); // 使用 wsf 檔案來印出 Hello World! </script></job>

範例22-4 主題:同時使用Jscript和VBScript於一個wsf檔案 執行結果 檢視原始碼 程式碼 說明 執行結果 檢視原始碼 程式碼 說明 在一個wsf檔案中可以包含兩種不同的script。 <job><script language="JScript"> WScript.Echo("「Hello world」 via JScript!"); </script> <script language="VBScript"> WScript.Echo("「Hello world」 via VBScript!")</script></job>

22-3:呼叫其它應用程式 本小節將以一些範例來示範如何以wsh呼叫其他應用程式。

呼叫其他應用程式的方法 以 JScript 撰寫 WSH 時,下面兩列程式碼都可以產生 shell 物件。 shell = WScript.CreateObject("WScript.Shell"); shell = new ActiveXObject("WScript.Shell");

範例22-5 主題:呼叫錄音機在背景播放一個聲音檔案 執行結果 檢視原始碼 程式碼 說明 執行結果 檢視原始碼 程式碼 說明 欲執行其他應用程式,可先產生一個 WSH 的 shell 物件,然後再使用 run() 函數來呼叫其他應用程式。 shell.Run(command, 0)的第二個參數,0代表不開啟所呼叫應用程式的視窗。1則表示開啟所呼叫應用程式的視窗。 當然也可以呼叫媒體播放器來播放,但因為媒體播放器太肥太慢了!所以使用錄音機來播放聲音檔案就可以了。 audioFile = "Windows XP 啟動.wav"; shell = new ActiveXObject("Wscript.Shell"); command = "sndrec32 /play /close " + audioFile; shell.Run(command, 0);

範例22-6 主題: 使用WSH開啟記事本並載入autoexec.bat 執行結果 檢視原始碼 程式碼 說明 執行結果 檢視原始碼 程式碼 說明 所開啟的應用程式會保持開啟狀態,WSH會持續執行其後的程式碼。 若要等待應用程式被關閉後,才繼續執行其後的 WSH 程式碼,可以在 run() 之後再加上第三個參數。 shell = WScript.CreateObject(“WScript.Shell”); Shell shell.Run(“cmd /K dir c:\\windows”); shell.Run(“wordpad.exe c:\\autoexec.bat”);

範例22-8 主題:打開小算盤,並顯示相關的資訊 執行結果 檢視原始碼 程式碼 說明 執行結果 檢視原始碼 程式碼 說明 while (oExec.Status == 0) WScript.Sleep(100);這行程式碼,若程式未開啟,將會持續等待,直至開啟完畢。 最後三行,會讓程式印出相關訊息。 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);

22-4:取用命令列參數 本小節將介紹如何抓取命令列參數,讓 WSH 更具彈性。

範例22-9 主題:如何一一印出命令列的參數 執行結果 檢視原始碼 程式碼重點 說明 執行結果 檢視原始碼 程式碼重點 說明 在 DOS 命令視窗輸入: "cscript cmdArgument01.js Monday Tuesday Wednesday“ 可得到"No. of arguments = 3 args(0)=Monday args(1)=Tuesday args(2)=Wednesday"的結果 args.Count() 和 args.length 都是代表輸入參數的個數。 WScript.Echo("No. of arguments=“+WScript.Arguments.Count()); for (i=0; i<args.length; i++) WScript.Echo("args("+i+")="+args(i));

範例22-10 主題:如何逐次播放音效檔案 執行結果 檢視原始碼 程式碼 說明 args=WScript.Arguments; 執行結果 檢視原始碼 程式碼 說明 可以在 DOS 視窗輸入如下: cscript audioPlay02.js chimes.wav notify.wav ding.wav 極可聽到三個音效連續播放的聲音。 上述三個音效檔案,都已經放在範例目錄之下。若要尋找更多的音效檔案,可以到 c:\windows\media 目錄尋找。 args=WScript.Arguments; shell = new ActiveXObject("Wscript.Shell"); for (i=0; i<args.length; i++){ command="sndrec32 /play /close“+ args(i);shell.Run(command, 0, true); }

22-5 :執行選項 本小節將介紹如何以選項來指定執行的方式。

列出執行選項 (1) 由 DOS 視窗輸入「cscript //?」列出執行選項說明

列出執行選項 (2) 若在 DOS 視窗輸入”wscript /?”,也會得到類似的選項說明

不顯示微軟的Logo 當直接在 DOS 視窗輸入「cscript hello01.js」時 如果不想顯示「Microsoft (R) ...」這些字眼,可以在 DOS 視窗輸入「cscript hello01.js //Nologo」

範例22-9 (1) 主題:對個別的 WSH 檔案來設定執行選項 連結:執行結果 檢視原始碼 程式碼重點 說明: 連結:執行結果 檢視原始碼 程式碼重點 說明: 我們可以使用滑鼠右鍵點選 hello01.js,選取「內容」後,再選取「Script」。 勾選「在指定秒數之後,停止Script」,並選擇5秒,且不勾選「當 Script 在命令主控台執行時顯示標誌」,按下確定後,會在同一個目錄下產生一個檔案 hello01.wsh。 [ScriptFile] Path=D:\users\jang\books\wsh\example\hello01.js [Options] Timeout=5 DisplayLogo=0

範例22-9 (2) 說明 此檔案記錄 hello01.js 在執行時的選項,「Path=...」代表對應的 WSH 檔案的路徑,「Timeout=5」表示執行的最長的時間是 5 秒(若超過此時間,系統會中斷程式碼的執行),「DisplayLogo=0」代表在 DOS 視窗執行時,不顯示微軟的標誌。 hello01.js 經過了這樣的設定,其效果就完全等效於在 DOS 視窗輸入「cscript hello01.js //T:5 //Nologo」。 我們可將「Path=...」改成相對路徑,如此可以同時搬動 hello01.js 和 hello01.wsh,而不必再更改「Path=...」這一列。 以上的方法是針對每個 WSH 檔案可以設定個別的執行選項。若要設定整體的 WSH 選項,只要在 DOS 視窗輸入”wscript”,就可以設定此選項,設定方式於前述相同。