1 / 60

第 24 章 WSH 範例精選

第 24 章 WSH 範例精選. 張智星 jang@mirlab.org http://mirlab.org/jang 台大資工系 MIR 實驗室. 本章大綱. 大綱 本章提供了各種常用 WSH 的程式範例,讓讀者能夠一覽 WSH 的典型應用。 主題 24-1 :桌面處理 24-2 :檔案處理 24-3 :目錄與磁碟機處理 24-4 :電腦系統管理 24-5 :網頁伺服器的管理 24-6 :通用表示法的應用 24-7 :網頁抓取與處理 24-8 :與資料庫整合 24-9 :使用 wsInetTools.dll

efuru
Download Presentation

第 24 章 WSH 範例精選

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第24章WSH 範例精選 張智星 jang@mirlab.org http://mirlab.org/jang 台大資工系 MIR實驗室

  2. 本章大綱 • 大綱 • 本章提供了各種常用 WSH 的程式範例,讓讀者能夠一覽 WSH 的典型應用。 • 主題 • 24-1:桌面處理 • 24-2:檔案處理 • 24-3:目錄與磁碟機處理 • 24-4:電腦系統管理 • 24-5:網頁伺服器的管理 • 24-6:通用表示法的應用 • 24-7:網頁抓取與處理 • 24-8:與資料庫整合 • 24-9:使用 wsInetTools.dll • 24-10:傳送鍵盤事件

  3. 24-1:桌面處理 • 本小節將說明如何使用 WSH 來對電腦桌面進行簡單的管理。

  4. 範例24-1 • 主題:在桌面建立記事本的捷徑 • 連結:執行結果檢視原始碼 • 程式碼 • 說明 • 執行上述程式後,你會在你的電腦桌面發現一個新捷徑,名稱為「WSH 產生的記事本捷徑」。

  5. 範例24-2 • 主題:將一段由 WSH 產生的文字送到剪貼簿 • 連結:執行結果檢視原始碼 • 程式碼 • 說明 • 執行上述範例後,開啟記事本並按 Ctrl-v,極可將剪貼簿中的文字貼到記事本。 • How to set IE visible? • Can you create a simpler example?

  6. 範例24-3 • 主題:對桌面視窗進行直接的串接 • 連結:執行結果檢視原始碼 • 程式碼 • 說明 • 執行後,即可重疊顯示螢幕上的視窗 • 當桌面上太多視窗時,可用此方法整理

  7. 範例24-4 • 主題:對桌面視窗進行水平並排 • 連結:執行結果檢視原始碼 • 程式碼 • 說明 • 此方法可以水平並排螢幕上的視窗

  8. 範例24-5 • 主題:對桌面視窗進行垂直並排 • 連結:執行結果檢視原始碼 • 程式碼 • 說明 • 執行後,即可垂直並排螢幕上的視窗

  9. 24-2:檔案處理 • 本小節將以範例說明WSH 對於檔案的讀寫

  10. 範例24-6 • 主題:將file1.txt 及 file2.txt 的內容寫到 file3.txt • 連結:執行結果檢視原始碼 • 程式碼重點 • 說明 • file1.txt的檔案內容為”這是 file1.txt 的內容。”file2.txt的檔案內容為”這是 file2.txt 的內容。”執行後的file3.txt內容為”這是 file1.txt 的內容。這是 file2.txt 的內容。”

  11. 範例24-7 (1/2) • 主題:若常讀取檔案,可以函數 fileRead(),將讀取 的檔案內容送到陣列,便於進行逐列的處理。 • 連結:執行結果檢視原始碼 • 說明: • 第一段的程式碼是將檔案內容傳送至陣列 • 第二段的程式碼則是函數的定義 • 執行fileRead01.js後,將在 DOS 命令視窗印出此檔案的內容並加入列數,詳細內容見下頁

  12. 範例24-7 (2/2)

  13. 範例24-8 • 主題:使用 WSH 來讀取與檔案相關的性質 • 連結:執行結果檢視原始碼 • 程式碼重點 • 說明 • 要抓出所有性質,我們可以從for-in迴圈著手。Can someone give me a working example?

  14. 24-3:目錄與磁碟機處理 • 本小節將以範例說明WSH 對於目錄與磁碟機處理

  15. 範例24-9 • 主題:顯示某一個資料夾的大小 • 連結:執行結果檢視原始碼 • 程式碼 • 說明: • 執行上述程式後,典型顯示結果如下:目錄的大小是 15365403102 bytes. • 若 folderPath 設定成 C 槽,會有權限問題,如何解決?

  16. 範例24-10 • 主題:使用 WSH 顯示目前工作目錄,或是改變目前工作目錄 • 連結:執行結果檢視原始碼 • 程式碼 • 說明: • 典型顯示結果如下: • 目前工作目錄:D:\users\jang\books\wsh\example • 改變目前工作目錄至:c:\windows\temp • Not working! Help needed…

  17. 範例24-11 • 主題:列出一特定目錄下的所有檔案 • 連結:執行結果檢視原始碼 • 程式碼 • 說明: • 執行後即可列出 c:\windows\temp 目錄下的所有檔案

  18. 範例24-12 • 主題:列出磁碟機及其相關性質 • 連結:執行結果檢視原始碼 • 說明:典型顯示結果如下

  19. 24-4:電腦系統管理 • 本小節將以範例說明WSH 對於電腦系統的管理

  20. 範例24-13 • 主題:列出與 SYSTEM 相關的重要環境變數 • 連結:執行結果檢視原始碼 • 說明:

  21. 範例24-14 • 主題:列出與 SYSTEM 相關的全部環境變數 • 連結:執行結果檢視原始碼 • 程式碼重點

  22. 範例24-15 • 主題:列出與 PROCESS 相關的全部環境變數 • 連結:執行結果檢視原始碼 • 程式碼重點

  23. 範例24-17 • 主題:列出電腦、網域名稱及使用者名稱等資訊 • 連結:執行結果檢視原始碼 • 程式碼

  24. 範例24-18 • 主題:顯示此機器的所有使用者 • 連結:執行結果檢視原始碼 • 說明 • 如果使用者只有一個,通常是administrator。

  25. 24-5:網頁伺服器的管理 • 本小節將以範例說明使用 WSH 來管理微軟的網頁伺服器

  26. 範例24-19 • 主題:列出 IIS 網頁伺服器的性質 • 連結:執行結果檢視原始碼 • 說明 • 可以修改性質來更改iis各種屬性。

  27. 範例24-20 • 主題:產生虛擬目錄 • 連結:執行結果檢視原始碼 • 說明 • 首先定義位址物件,“IIS://LocalHost/W3SVC/1/Root”表示於預設的 Web 站台的主目錄下建立虛擬目錄。 • 使用“Create("IISWebVirtualDir","虛擬目錄名稱")”方法,以建立虛擬目錄。 • 執行後產生的虛擬目錄是 winTemp,對應到實際硬碟的目錄是 c:\windows\temp。經由「控制台/系統管理工具/Internet Information Services」可以開啟 IIS 管理介面,以確認虛擬目錄 winTemp 的存在。

  28. 範例24-21 • 主題:使用 WSH 來控制 IIS 網頁伺服器 • 連結:執行結果檢視原始碼 • 程式碼 • 說明 • 範例中,我們可以對 IIS 進行暫停、繼續、停止、啟動等控制。

  29. 24-6:通用表示法的應用 • 本小節說明在 WSH 也可以使用通用表示法,此方式可以讓我們很快地在大量文字中間找到我們所要的資訊。

  30. 範例24-22 • 主題:找出一個網頁的標題 • 連結:執行結果檢視原始碼 • 說明 • 此程式碼會重從 test.htm 找出此網頁的標題,印出結果如下 • 在上述範例中,title[1] 和 RegExp.$1 儲存相同的結果。

  31. 範例24-23 • 主題:找出以JScript為主WSH 檔案的第一列註解 • 連結:執行結果檢視原始碼 • 程式碼重點 • 說明 • 印出結果 • 本範例前半段與上一範例相同

  32. 範例24-24 • 主題:對範例目錄製作index.asp 的檔案 • Webpage: remote host, local host • 說明 • 採用6-2的方式,可以對範例目錄製作一個 index.asp 的檔案,即時地將每一個 js 檔案的第一列註解列印出來,形成一頁對 WSH 的所有 JScript 範例的列表和簡單說明

  33. 範例24-25 • 主題:從一段文字中,抽取連結文字與相關網址 • 連結:執行結果檢視原始碼 • 說明 • 顯示結果如下:

  34. 範例24-26 • 主題:從一個檔案中,抽取連結文字與相關網址 • 連結:執行結果檢視原始碼 • 說明 • 務必將程式碼 linkExtraction02.js 和網頁檔案 test.htm 放在同一個目錄。

  35. 24-7:網頁抓取與處理 • 本小節將說明如何使用 WSH 來直接抓取網頁

  36. 使用 InetCtls.Inet • 若要使用 WSH 來直接抓取網頁,可以使用 Visual Basic 6 的元件 InetCtls.Inet • 安裝方法如下 • 從下列網址下載壓縮檔案 msinet.cab: http://activex.microsoft.com/controls/vb6/msinet.cab(近端備份:...\wsh\download\msinet.cab) • 對 msinet.cab 進行解壓縮,得到 MSINET.INF 和 MSINET.OCX,將這兩個檔案放到 c:\windows\system32 目錄下。 • 開啟 DOS 視窗,進入 c:\windows\system32 目錄,執行「regsvr32 msinet.ocx」,即可完成安裝。

  37. 範例24-27 • 主題:使用 WSH 來直接抓取網頁 • 連結:執行結果檢視原始碼 • 程式碼 • 說明 • 欲下載之網頁與設定的嘗試時間皆可依需求更改

  38. 範例24-28 • 主題:使用通用運算式,便可以在抓取網頁後,顯示此網頁的標題 • 連結:執行結果檢視原始碼 • 程式碼重點 • 說明 • 最後一行的功能為顯示結果

  39. 範例24-29 • 主題:在抓取一個網頁後,立即將網頁儲存到硬碟中的某個檔案 • 連結:執行結果檢視原始碼 • 程式碼 • 說明 • 此段程式碼的目的是將網頁內容寫入本機檔案

  40. 範例24-30 • 主題:利用通用表示法抓出網頁中連結和相關文字 • 連結:執行結果檢視原始碼 • 程式碼重點

  41. 範例24-31 • 主題:使用WinHttpRequest物件抓取 Google首頁 • 連結:執行結果檢視原始碼 • 說明 • 可以暫停網路,再試看看此範例,就會印出抓不到網頁的錯誤訊息了 • 前面範例所用的 InetCtls.Inet 元件,比較簡單,所以無法偵測網路斷線的情況,而IIS內建的元件 WinHttp.WinHttpRequest,則有較多偵錯功能可以應付斷線的情況

  42. 24-8:與資料庫整合 • 本小節將介紹如何用 WSH 來對資料庫整合

  43. 範例24-31 • 主題:用 WSH 來對資料庫列表 • 連結:執行結果檢視原始碼 • 說明 • 執行後,在 DOS 命令視窗印出結果如下 • 原先以 JScript 進行資料庫列表的連結:listdb01.asp

  44. 範例24-32 • 主題:以wsh對資料庫進行新增 • 連結:執行結果檢視原始碼 • 程式碼重點 • 說明 • SQL 指令的 where 條件式是不分大小寫的,所以如果條件式是 name=‘abc’,抓出來的資料可能包含 ‘abc’、‘ABC’、‘aBc’ 等資料,若要解決此問題,請見下一個範例。

  45. 範例24-33 • 主題:使用 strcomp 函數避免SQL大小寫問題 • 連結:執行結果檢視原始碼 • 程式碼重點 • 說明 • sql2screen() 函數的功能是將 SQL 指令的結果列印在螢幕上,下個範例將說明如何把結果記錄在檔案中

  46. 範例24-34 • 主題:將 SQL 指令的結果記錄在檔案之中 • 連結:執行結果檢視原始碼 • 說明 • 此範例會將 testTable 資料表的內容儲存到 output.txt 。 • sql2file() 函數的功能即是將 SQL 指令的結果記錄在檔案之中。

  47. 24-9 使用 wsInetTools.dll • 本小節將使用幾個範例來說明此元件的功能

  48. wsInetTools.dll的功能與下載 • 我們可以經由各種元件來加強 WSH 的功能 • wsInetTools.dll是一個使用 C++ 開發的元件,主要有下列三項功能 • 抓取網頁 • 抓取二進制檔案(例如 mp3、midi 等檔案) • 寄發電子郵件 • http://www.winscripter.com/Downloads/default.aspx可下載相關的 zip 檔案,解開以後,就可以看到 wsInetTools.dll 及相關的範例及說明。相關的說明,可見下載後的 index.htm

  49. 使用wsInetTools.dll • 使用此元件之前,必須先將此元件登錄於系統之中,可以分成兩步驟: • 將 wsInetTools.dll 拷貝到c:\windows\system32\ 之下。 • 點選「開始/執行」,然後輸入 「regsvr32 wsInetTools.dll」,按下「確定」,就完成了元件登錄的動作。 • 完成上述步驟後,就可以開始使用wsInetTools.dll

  50. 範例24-35 • 主題:直接抓取 HTML 網頁 • 連結:執行結果檢視原始碼 • 程式碼 • 說明 • 此範例使用了wsInetTools.dll 抓取 HTML 檔案

More Related