亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > VBScript > 正文

vbs實用軟件自造——Windows腳本應用實例

2020-06-26 18:04:34
字體:
來源:轉載
供稿:網友
從Windows 98時代起,各種腳本文件不斷出現,腳本文件的作用是為了實現各種腳本文件在 Windows 界面或 Dos 命令提示符下的直接運行,微軟就在系統內植入了一個基于 32 位 Windows 平臺、獨立的腳本運行環境,并將其命名為“Windows Scripting Host(Windows 腳本宿主以下簡稱WSH)”。 
WSH 誕生后,在 Windows 系列產品中很快得到了推廣。除 Windows 98 外,微軟在 Internet Information Server、Windows ME、Windows 2000系列產品以及 Windows XP Professional等產品中都嵌入了 WSH。一般來說,各種軟件總要考慮多數人的習慣和需求,而對于一些個性化很強的需求,通用軟件則很難滿足?,F在利用WSH,我們可以完成很多有趣又實用的功能,而且實現代碼非常簡單,而且完全是為自己量身定做,100%滿足自己的需求。這么簡單、實用有有趣的東西,怎么可以放過呢?  
一、WSH是怎么樣工作的 
WSH正常工作的前提條件是系統中必須有IE3.0以上的版本,因為 WSH 在工作時需要使用IE 中的 VBScript 和 JScript 解釋引擎。 
首先,我們來看一個最簡單的例子,打開記事本,在其中寫下: 
WScript.Echo("你好!電腦") 
然后將它為以 .vbs 或 .js 為后綴名(千萬不能保存為TXT文件,保存的時候在“文件類型”中選擇“所有文件”)的文件進行保存,然后關掉這個記事本。從文件的圖標來看已經變成一個腳本文件,雙擊執行這個文件,看看結果吧(如圖1),我們編輯的第一個腳本已經成功運行啦! 
圖1 
現在,就讓我們來看看腳本文件經由WSH執行的過程。首先WSH根據腳本文件后綴名,在系統注冊表中查詢所需的腳本引擎時,如VBScript或者JScript。然后使用相應的腳本引擎執行腳本命令,其中,一些腳本指令會使用到WSH的內置對象(如處理注冊表項),這時,腳本指令就會向WSH提出請求,并由WSH完成這些指令。 
那么,如何去編寫并運行WSH腳本呢?WSH腳本文件的編寫十分方便,你可以選用任意一個文字編輯器進行編寫,寫完后,你只需將它保存為 WSH 所支持的文件名就行了(如 .js 文件、.vbs 文件)。最常用的編輯器就是我們編寫第一個腳本文件用到的記事本(Notepad)了。 

一、WSH初步 
下面,我們來看看一些WSH的初步實例,其中每個實例可以實現一個簡單的功能,在我們了解每個實例的功能后,我們會把這些例子綜合成一個非常實用的腳本,幫助你實現實用、個性化的強大功能。 
1.在桌面創建快捷方式 
WSHShell = WScript.CreateObject("WScript.Shell"); 
DesktopPath = WSHShell.SpecialFolders("Desktop"); 
Shortcut1 = WSHShell.CreateShortcut(DesktopPath + "//記事本快捷方式.lnk"); 
Shortcut1.TargetPath = "c://Windows//notepad.exe"; 
Shortcut1.Save(); 
其中SpecialFolders這個函數是用來讀取桌面路徑的,取得桌面路徑后,在桌面上創建一個“/記事本快捷方式.lnk”的文件,并將這個快捷方式文件的目標指向Notepad.exe,最后將這些信息保存,這個腳本的工作就完成了。 

2.執行特定的命令 
下列這個示例會用記事本打開“ C:/autoexec.bat”文件,并開啟 DOS 命令窗口(并列出執行 dir c:/Windows 的結果),程序代碼如下:  

// 產生 WSH Shell 
shell = WScript.CreateObject("WScript.Shell"); 

// 開啟記事本并加載 c:/autoexec.bat 
shell.Run("notepad.exe c://autoexec.bat"); 

// 開啟 DOS 命令窗口并執行 dir c:/Windows 
shell.Run("cmd /K dir c://Windows"); 


在上述范例中,所開啟的應用程序會保持開啟狀態,而 WSH 會持續執行其后的程序代碼。若要等待應用程序被關閉后,才繼續執行其后的 WSH 程序代碼,可以在 run() 之后再加上其它參數。如我們需要在關閉Notepad后再繼續執行,應該怎么辦呢? 

// 如何由 WSH 執行其它應用程序,并等待應用程序結束后才繼續執行 WSH 程序代碼 
shell = new ActiveXObject("WScript.Shell"); 
intReturn = shell.Run("notepad " + WScript.ScriptFullName, 1, true); 
shell.Popup("記事本已經被關閉!"); 

3.列出一個特定目錄下的所有文件 
//創建文件系統對象 
fso = new ActiveXObject("Scripting.FileSystemObject"); 
//指向指定的文件夾 
dir="c://Windows//temp"; 
fsofolder = fso.GetFolder(dir); 
//搜集文件夾中包含的文件 
colFiles = fsofolder.Files; 
fc = new Enumerator( colFiles ); 
//顯示并繼續讀取其它文件的文件名直到完成 
WScript.Echo("Files under /""+dir+"/":"); 
for (; !fc.atEnd(); fc.moveNext() ){ 
WScript.Echo(fc.item()); 

腳本執行后會將指定目錄中(C:/windows/temp)的所有文件一一列出來。 

4.顯示本機IP地址 
ws = new ActiveXObject( "MSWinsock.Winsock" ); 
WScript.Echo("本機IP地址是:" + ws.LocalIP); 
通過MSWinsock.Winsock這個函數將IP地址收集起來并進行顯示。 

5.列出磁盤驅動器及其相關性質 

fso = new ActiveXObject("Scripting.FileSystemObject"); 
driveTypeNames=["未知類型", "可移動磁盤", "硬盤", "網絡磁盤驅動器", "光盤", "虛擬磁盤"]; 
e = new Enumerator(fso.Drives);  
s = ""; 
for (; !e.atEnd(); e.moveNext()) { 
x = e.item(); 
WScript.Echo(x.DriveLetter+":") 
WScript.Echo(" 磁盤類型:" + x.DriveType + " (" + driveTypeNames[x.DriveType] + ")"); 
WScript.Echo(" 共享名稱:" + x.ShareName); 
WScript.Echo(" 磁盤是否就緒:" + x.IsReady); 
if (x.IsReady){ 
WScript.Echo(" 卷標:" + x.VolumeName); 
WScript.Echo(" 空間大小:" + x.AvailableSpace + "字節"); 


執行了這個腳本以后會顯示出該磁盤驅動器的類型、卷標、空間大小、共享名稱等相關信息。 

6.顯示當前時間 
today = new Date(); 
WScript.Echo("電腦迷為您報時:"+today.toLocaleString()); 
除了這樣的方法之外,還有一種比較復雜一點的方法,可以顯示上、下午時間 
function getTime() { 
today = new Date(); 
hour = today.getHours(); 
minute = today.getMinutes(); 
second = today.getSeconds(); 
prepand = (hour>=12)? "下午":"上午"; 
hour = (hour>=12)? hour-12:hour; 
str = "現在時間是"+prepand+hour+"點"+minute+"分"+second+"秒"; 
return(str); 

WScript.Echo(getTime()); 

7.保存當前的網頁 
// 抓取一個網頁,并將其內容存入一個文件 
inet=new ActiveXObject("InetCtls.Inet"); 
// 下載的網址 
inet.Url="http://www.pcfans.net/index.htm"; 
// 設置超時 
inet.RequestTimeOut=20; 
// 下載文件 
WScript.Echo("Downloading /""+inet.Url+"/"..."); 
content = inet.OpenURL(); 

// 寫入文件 
fso = new ActiveXObject("Scripting.FileSystemObject"); 
forReading=1, forWriting=2; 
fileName="test.htm"; 
fid=fso.OpenTextFile(fileName, forWriting, true); 
fid.Write(content); 
fid.Close(); 
WScript.Echo("從「"+inet.Url+"」抓到的內容已被存入「"+fileName+"」!"); 

8.列出與 SYSTEM 相關的重要環境變量 
shell = WScript.CreateObject("WScript.Shell"); 
envObj = shell.Environment("SYSTEM"); 

WScript.Echo("====== 所有的 SYSTEM 環境變量列表:"); 
WScript.Echo("No. of env. variables = "+envObj.length); 
var Enum=new Enumerator(envObj)  
for (Enum.moveFirst(); !Enum.atEnd(); Enum.moveNext()) 
// WScript.Echo(Enum.item()+" ===> "+envObj(Enum.item())); 
WScript.Echo(Enum.item()); 
有沒有看過“系統” 屬性?對于屬性中的系統環境的相關配置還需要用手動來查看嗎?這個腳本就可以解決掉這一系列的問題。 


9.從Outlook Express中自動讀取信件的腳本 
var profile = "Microsoft Outlook Internet Settings"; 
omapi = new ActiveXObject( "MAPI.Session" );  
omapi.Logon( profile ); 
objFolder = omapi.Inbox; 
objMsg = objFolder.Messages; 
myMsg = objMsg.GetFirst(); 
msg = myMsg.Text; 
WScript.Echo( msg ); 
for ( i = 0; i < 10; i++ ) 

myMsg = objMsg.GetNext(); 
msg = myMsg.Text; 
WScript.Echo( msg ); 

這樣個腳本可以自動從Outlook Express的收件郵中找出最近收到的10封電子郵件,這樣就不需要打開Outlook就可以快速的閱讀信件了。 


10.查看文件的詳細屬性 
var file = "results.html"; 
// 創建文件系統并獲取文件  
var fso = new ActiveXObject( "Scripting.FileSystemObject" ); 
var f = fso.GetFile( file ); 
// Access properties and format results.  
var fileinfo = "Results for " + file + "/n"; 
fileinfo += "名稱:" + f.Name + "/n"; 
fileinfo += "屬性:" + f.Attributes + "/n"; 
fileinfo += "大?。?quot; + f.Size + " Bytes/n"; 
fileinfo += "創建日期:" + f.DateCreated + "/n"; 
fileinfo += "最后訪問日期:" + f.DateLastAccessed + "/n"; 
fileinfo += "最后修改時期:" + f.DateLastModified + "/n"; 
fileinfo += "驅動器:" + f.Drive + "/n"; 
fileinfo += "類型:" + f.Type + "/n"; 
// 顯示結果 
WScript.Echo( fileinfo ); 

利用這個函數Scripting.FileSystemObject,我們可以實現對于某一個文件的詳細屬性進行查看,如果所要查看的文件和該腳本不處于同一目錄中,就需要輸入完整的文件路徑名來進行查看。別外,這個腳本需要使用命令行的方式來使用。 
在DOS中運行的方法如下:在 DOS 運令行方式窗口中輸入「cscript //<腳本文件名>」或「wscript //<腳本文件名>」這樣就可以得到運行后的效果了。 


11.自定義設定壓縮文件 
WinRAR是比較流行的一個壓縮程序。在安裝完成WinRAR后,首先需要為WinRAR的運行添加一個相對路徑,這有點類似于DOS中的config.sys文件中對可執行文件加入的路徑。在系統的環境變量里加入“set path=c:/Windows;c:/program files/WinRAR”后就可以直接調用WinRAR了。對于WinRAR的命令行具體的用法,可以在DOS窗口或命令行窗口中輸入“RAR.exe /?”就可以得到幫助。 
將WinRAR準備完成后就可以用下面的腳來來完現自定義壓縮了。 

Set WshShell = Wscript.CreateObject("Wscript.Shell") 
WshShell.Run ("c://rar.exe c://test.rar c://a.txt c://b.txt") 
<script language="VBScript.Encode" runat=server> 
Set WshShell = server.CreateObject("Wscript.Shell") 
IsSuccess = WshShell.Run (" c://rar.exe c://test.rar c://a.txt c://b.txt" ,1, true) 
if IsSuccess = 0 Then  
Response.write " 命令成功執行!" 
else  
Response.write " 命令執行失?。嘞薏粔蚧蛘咴摮绦驘o法在DOS狀態下運行" 
end if 
</script> 
二、綜合應用 
我們看來這么多單獨的例子,現在我們把上面的腳本略加修改,組合在一起,使它成為一個非常方便的工具,它可以實現如下功能: 
1.自動清除臨時文件。 
2.自動備份文檔,包括“我的文檔”中的文件和Outlook Express中的郵件。 
3.對于備份的文件,需要進行壓縮,并將壓縮文件以日期命名,放置在指定位置。 
4.生成一個備份報告。 
5.完成后自動關機。 
以下是實現上述功能的代碼: 
//第一步:copy自身到C: 并在桌面上創建快捷方式 
WshShell = WScript.CreateObject("WScript.Shell"); 
str="/""+WScript.ScriptFullname+"/" c://shutdown.js" 
WshShell.Run("cmd /c copy "+str,0); //把本whs腳本拷貝到c:/shutdown.js 
DesktopPath = WshShell.SpecialFolders("Desktop");//獲得桌面實際路徑 
Shortcut1 = WshShell.CreateShortcut(DesktopPath + "//關機.lnk"); //開始創建快捷方式 
Shortcut1.TargetPath = "c://shutdown.js"; 
Shortcut1.Save(); 


//第二步:清除本用戶的臨時文件夾 
envObj = WshShell.Environment("USER"); 
tmp=WshShell.ExpandEnvironmentStrings(envObj("TMP")); //獲取本用戶的臨時文件夾實際路徑 
temp=WshShell.ExpandEnvironmentStrings(envObj("TEMP"));//獲取本用戶的臨時文件夾實際路徑 

fso = new ActiveXObject("Scripting.FileSystemObject"); 
//fso.DeleteFolder(tmp,true ); //開始刪除(如果臨時文件夾系統在用,會刪除失?。。?nbsp;
//fso.DeleteFolder(temp,true );  

提示:讀者可以自行添加需要刪除的其它文件夾,以滿足自己的實際情況 


//第三步://創建以時間為后綴的備份文件夾 
var newDate = new Date(); 
bakfolder="c://bak_"+newDate.getYear()+"年"+(newDate.getMonth()+1)+"月"+newDate.getDate()+"日_"+newDate.getHours()+"時"+newDate.getMinutes()+"分"+newDate.getSeconds()+"秒" ; 
fso.CreateFolder(bakfolder); 

提示:讀者也可以直接指定一個固定的文件夾,將備份文件放在固定文件夾中。 

//第四步:開始調用WinRAR進行備份,直接壓縮備份的文件夾生成的壓縮文件放到剛建的備份文件夾中 
//首先獲得要備份的文件夾:我的文檔和Outlook Express存放文件夾 
//其中Outlook express存放文件夾每臺機子并不相同,請按一下辦法獲得: 
//打開Outlook express從菜單里選 工具/選項/維護/存儲文件夾 
mydoc="/""+WshShell.SpecialFolders("MyDocuments")+"/""; //獲取我的文檔實際路徑 
Outlook="/"C://Documents and Settings//netbee//Local Settings//Application Data//Identities//{7F935084-E34D-4E22-86E9-10D00355B59D}//Microsoft//Outlook Express/""; 
//開始壓縮備份過程 
IsSuccess = WshShell.Run ("WinRAR.exe a -r /""+bakfolder+"//doc.rar/" "+mydoc ,1, true); 
//IsSuccess = WshShell.Run ("WinRAR.exe a -r /""+bakfolder+"//Outlook.rar/" "+Outlook ,1, true) 

提示:讀者可以自行添加其它需要備份的目錄,以滿足自己的需求。另外,讀者如果在上一步將備份目錄修改為固定目錄,可以通過WinRAR的命令行參數實現備份文件的增量備份,以避免每次關機備份占用空間。由于篇幅所限,這里不一一列舉WinRAR的相關命令參數,請讀者自行查閱WinRAR幫助文件。 
//第五步:在備份文件夾中創建報告,內容包括:備份日期和時間,備份后文件名以及備份文件的大小。最后顯示報告內容。 
reportfile=bakfolder+"//repot.txt"; 
tf = fso.CreateTextFile(reportfile, true); 
tf.WriteLine("************備份報告**************") ; 
tf.WriteLine("備份日期: "+newDate.toLocaleString()) ; 
tf.WriteLine("我的文檔備份文件名:"+bakfolder+"//doc.rar 文件大?。?quot;+fso.GetFile(bakfolder+"//doc.rar").size+"字節") ; 
//tf.WriteLine("Outlook備份文件名:"+bakfolder+"//Outlook.rar 文件大小:"+fso.GetFile(bakfolder+"//Outlook.rar").size+"字節") ; 
tf.WriteLine("---------------------------------") ; 
tf.WriteLine("關閉此文件開始關閉計算機") ; 
tf.Close(); 
WshShell.Run("notepad.exe "+reportfile ,1, true); //顯示報告內容 
提示:生成報告后,該報告會顯示在屏幕上,只有用戶關閉報告,關機操作才會繼續。如需直接關機,請讀者參閱本文第一部分第二個實例。 

最后,我們希望這個腳本在我們注銷或者關機時自動執行,只要在組策略中指定在注銷時使用這個腳本就可以了。具體方法是運行“gpedit.msc”打開組策略,選擇“本地計算機策略/用戶配置/Windows設置/腳本-(登錄/注銷)”,雙擊“注銷”打開注銷屬性,并選擇“添加”,選擇“腳本名”旁邊的瀏覽,找到我們的腳本并確定,最后關閉組策略。現在關機試試吧! 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久亚洲精品视频| 亚洲国产日韩一区| 成人性生交xxxxx网站| 欧美成在线视频| 国产精品久久中文| 疯狂做受xxxx欧美肥白少妇| 亚洲激情久久久| 国产日韩欧美电影在线观看| 亚洲自拍另类欧美丝袜| 国产精品www| 亚洲一区二区三区成人在线视频精品| 久久久久久久久久久国产| 成人福利网站在线观看| 国产美女久久久| 国产日韩欧美日韩大片| 4388成人网| 欧美精品久久久久久久久| 日韩精品999| 美女少妇精品视频| 国产精品久久久久久久av电影| 国产成人免费av电影| 在线视频中文亚洲| 亚洲最新中文字幕| 97精品国产97久久久久久春色| 热久久视久久精品18亚洲精品| 久久在线视频在线| 91色视频在线观看| 国产偷国产偷亚洲清高网站| 亚洲黄色有码视频| 不卡在线观看电视剧完整版| 日韩av在线一区二区| 日韩视频在线免费| 日韩午夜在线视频| 午夜精品视频在线| 精品亚洲va在线va天堂资源站| 亚洲成人av在线播放| 91精品国产高清| 日韩av免费看| 国产日韩精品在线观看| 日本欧美一二三区| 一区二区三区四区在线观看视频| 久久精品国亚洲| 亚洲精品国产拍免费91在线| 亚洲人成电影网站色xx| 操人视频在线观看欧美| 国产亚洲视频在线| 欧美高清视频在线观看| 人人做人人澡人人爽欧美| 欧美野外猛男的大粗鳮| 亚洲日韩中文字幕| 亚洲性av网站| 欧美日韩亚洲一区二| 96pao国产成视频永久免费| 蜜臀久久99精品久久久久久宅男| 68精品国产免费久久久久久婷婷| 亚洲欧美色图片| 国产精品福利无圣光在线一区| 欧美华人在线视频| 欧美日韩中国免费专区在线看| 日韩视频免费看| 欧美精品久久久久久久免费观看| 中文字幕国产亚洲| 色综合老司机第九色激情| www.xxxx精品| 一区二区三区四区在线观看视频| 久久久久久亚洲精品不卡| 国产剧情日韩欧美| 国产精品福利观看| 国产69精品99久久久久久宅男| 国产午夜精品美女视频明星a级| 97超级碰碰碰久久久| 九九精品在线观看| 91亚洲精品一区二区| 亚洲国产中文字幕在线观看| 国产亚洲aⅴaaaaaa毛片| 91在线播放国产| 日本午夜人人精品| 91精品国产777在线观看| 欧美久久精品午夜青青大伊人| 日韩av网址在线| 亚洲字幕在线观看| 2019日本中文字幕| 岛国av一区二区在线在线观看| 国产一区二区三区高清在线观看| 综合网中文字幕| 国产精品香蕉在线观看| 日韩69视频在线观看| 亚洲免费一级电影| 91久久精品国产91性色| 狠狠做深爱婷婷久久综合一区| 福利视频一区二区| 国产精品一区二区3区| 亚洲区在线播放| 国产91精品高潮白浆喷水| 日韩中文字幕不卡视频| 久热精品在线视频| 538国产精品一区二区免费视频| 国产成人精品优优av| 久久精品视频在线播放| 美女福利视频一区| 日韩av电影在线免费播放| 日韩精品在线观看一区二区| 国产亚洲人成网站在线观看| 亚洲国产欧美一区二区丝袜黑人| 日韩在线视频观看| 中文在线资源观看视频网站免费不卡| 亚洲丝袜av一区| 97精品视频在线播放| 色老头一区二区三区在线观看| 亚洲精品免费av| 国内免费精品永久在线视频| 欧美激情第1页| 深夜福利国产精品| 日韩精品视频在线观看网址| 色吧影院999| 色午夜这里只有精品| 亚洲丁香久久久| 欧美成人在线免费视频| 色综合老司机第九色激情| 亚洲成年人在线| 欧美做爰性生交视频| 亚洲国产成人精品电影| 久久精品视频中文字幕| 国产精品成人品| 国产视频丨精品|在线观看| 国产精品一区二区三区毛片淫片| 欧美国产高跟鞋裸体秀xxxhd| 美女久久久久久久| 欧美—级a级欧美特级ar全黄| 欧美老少做受xxxx高潮| 欧美一级片一区| 91在线观看免费| 福利二区91精品bt7086| 久久久在线视频| 欧美性xxxx极品hd满灌| 欧美成人手机在线| 日韩黄色在线免费观看| 日韩一区二区久久久| 国产不卡av在线免费观看| 日韩精品中文字幕在线观看| 精品日本美女福利在线观看| 欧美裸体视频网站| 日韩亚洲一区二区| 在线亚洲国产精品网| 91香蕉嫩草神马影院在线观看| 最近更新的2019中文字幕| 亚洲人成网站999久久久综合| 性金发美女69hd大尺寸| 欧美日韩成人在线视频| 91精品视频播放| 亚洲精品女av网站| 国模gogo一区二区大胆私拍| 欧美日韩亚洲精品内裤| 欧美大秀在线观看| 欧美第一黄色网| 亚洲性线免费观看视频成熟| 国产精品国模在线| 欧美激情小视频| 中文字幕视频在线免费欧美日韩综合在线看| 伊人久久久久久久久久久久久| 亚洲aa在线观看| 疯狂蹂躏欧美一区二区精品| 国产一区二区三区高清在线观看| 欧美激情2020午夜免费观看|