vbs/js腳本編程教學(2)
2020-07-26 12:06:21
供稿:網(wǎng)友
 
						腳本編程教學2    
我們來看一看怎么利用fso來進行文件操作。Fso時vbs里進行文件操作的核心。作為黑客,不管學習什么語言,對文件的操作都應(yīng)該是要了如指掌的,所以請大家仔細學習。 
不說廢話,先看fso由哪幾個對象組成: 
  
drive對象:包含儲存設(shè)備的信息,包括硬盤,光驅(qū),ram盤,網(wǎng)絡(luò)驅(qū)動器 
drives集合:提供一個物理和邏輯驅(qū)動器的列表 
file  對象:檢查和處理文件 
files 集合:提供一個文件夾中的文件列表 
folder對象:檢查和處理文件夾 
folders集合:提供文件夾中子文件夾的列表 
textstream對象:讀寫文本文件 
  
看看fso的方法:由于很多,所以我不會把每個的作用寫出來,如果有不懂的,自己查一下msdn。不要說沒有哦 
bulidpath:把文件路徑信息添加到現(xiàn)有的文件路徑上 
copyfile 
copyfolder 
createfolder 
createtextfile 
deletefile 
deletefolder 
dreveexits 
fileexits 
folderexists 
getabsolutepathname:返回一個文件夾或文件的絕對路徑 
getbasename:返回一個文件或文件夾的基本路徑 
getdrive:返回一個dreve對象 
getdrivename:返回一個驅(qū)動器的名字 
getextensionname:返回擴展名 
getfile:返回一個file對象 
getfilename:返回文件夾中文件名稱 
getfolder 
getparentfoldername:返回一個文件夾的父文件夾 
getspecialfolder:返回指向一個特殊文件夾的對象指針 
gettempname:返回一個可以被createtextfile使用的隨機產(chǎn)生的文件或文件夾的名稱 
movefile 
movefolder 
opentextfile 
  
好了,看到這里我想大家也明白了一大半,可能后面都不用我多說了,腳本就是這么簡單,呵呵呵,還是繼續(xù)把。 
  
1、使用fso 
由于fso不是wsh的一部分,所以我們需要建立他的模型 
例如set fs=wscript.createobject(“scripting.filesystemobject”) 
這樣就建立了fso的模型。如果要釋放的話也很簡單,set fs=nothing 
  
2、使用文件夾 
創(chuàng)建: 
在創(chuàng)建前我們需要檢查是否存在,看一下程序 
***************************createfolder.vbs***************************** 
dim fs,s 
set fs=wscript.createobject(“scripting.filesystemobject”) 
if (fs.folderexists(“c:/temp”)) then 
s=”is available” 
else 
s=”not exist” 
set foldr=fs.createfolder(“c:/temp”) 
end if  
刪除、拷貝、移動 
  
刪除: 
set fs=wscript.createobject(“scripting.filesystemobject”) 
fs.deletefolder(“c:/windows”) 
  
拷貝: 
set fs=wscript.createobject(“scripting.filesystemobject”) 
fs.copyfolder “c:/data” “d:/data” 
注意,如果這個時候c:/data 和d:/data都存在,會出錯,復制也就會停止,如果要強制覆蓋,使用fs.copyfolder “c:/data” “d:/data”,true 
  
移動 
set fs=wscript.createobject(“scripting.filesystemobject”) 
fs.movefolder “c:/data” “d:/data” 
  
關(guān)于通配符: 
我們可以使用統(tǒng)配符,來方便操作: 
例如, fs.movefolder :c:/data/te*” , “d:/working” 
注意到?jīng)]有,我在目的路徑最后沒有使用“/” 也就是說我沒有這樣寫: 
fs.movefolder :c:/data/te*” , “d:/working/” 
這樣寫的話,如果d:/working 目錄不存在,windows就不會為我們自動創(chuàng)建這個目錄。 
  
還有一點,大家注意到?jīng)]有 上面說的都沒有涉及到folder對象,我們都是在利用fso提供的方法,當然利用folder一樣可以的: 
set fs= wscript.createobject(“scripting.filesystemobject”) 
set f=fs.getfolder(“c:/data”) 
f.delete  ‘刪除。如果有子目錄,也會被刪除 
f.copy “d:/working”,true    ‘拷貝到d:/working 
f.move :”d:/temp”    ‘移動到d:/temp 
  
特殊文件夾 
一般指的就是系統(tǒng)文件夾:/windows/system32, 臨時文件夾,windows文件夾 
看下面,我們使用環(huán)境變量來獲得windows目錄,關(guān)于環(huán)境變量我們會在后面詳細講道,如果我忘記了 請大家提醒我 
set fs=wscript.createobject(“scripting.filesystemobject”) 
set wshshell=wscript.createobject(“wscript.shell”) 
osdir=wshshell.expandenvironmentstrings(“%systemroot%”) 
set f =fs.getfolder(osdir) 
wscript.echo f 
  
當然,還有簡單的方法 那就是使用getspecialfolder() 
這個方法使用3種值: 
0  表示windows文件夾,相關(guān)常量是windowsfolder 
1  系統(tǒng)文件夾,相關(guān)常量是systemfolder 
2  臨時目錄,相關(guān)常量temporaryfolder 
看下面的例子: 
***********************************getspecialfolder*************************** 
set fs=wscript.createobject(“scripting.filesystemobject”) 
set wfolder=fs.getspecialfolder(0) ‘返回windows目錄 
set wfolder=fs.getspecialfolder(1) ‘返回system32/ 
set wfolder=fs.getspecialfolder(2)'返回臨時目錄 
  
3、使用文件 
使用文件屬性: 
文件夾的屬性我沒有說,大家可以從文件屬性里舉一反三 
文件屬性常用的就是: 
normal   0 
readonly  1 
hideen    2 
system    4 
  
set fs=wscript.createobject(“scripting.filesystemobject”) 
set f=fs.gerfile(“d:/index.txt”) 
f.attributes=f.attributes+1 
  
這里由于不知道d:/index.txt的文件屬性,所以會發(fā)生不可預測的結(jié)果,如果文件的屬性是0,那么就會變成1。所以最好在改變屬性前查詢 
  
創(chuàng)建 
創(chuàng)建前需要檢查文件是否存在,方法和前面說的文件夾的方法一樣 
*****************************file.vbs********************************** 
set fs=wscript.createobject(“scripting.filesystemobject”) 
if fs.fileexists(“c:/asd.txt”) then 
s=” available” 
else 
s=not exist” 
set f=fs.createtextfile(“c:/asd.txt”) 
end if  
當然 我們也可以使用set f=fs.createtextfile(“c:/asd.txt”,true) 
來強制覆蓋已存在的文件。 
  
復制移動刪除文件 
和文件夾一樣 我們既可以使用fso提供的方法也可以用file對象 
set fs=wscript.createobject(“scripting.filesystemobject”) 
fs.copyfile “c:/asd.txt”,”d:/1/asd.txt”,true   ‘復制文件,如果已存在就強制覆蓋 
fs.movefile “c:/asd.txt”, “d:/”   ‘移動 
fs.deletefile “c:/asd.txt”   ‘刪除 
  
好了,下一章我們就要學習文件的讀寫了,文件的讀寫是文件系統(tǒng),尤其是黑客編程里面十分重要的一部分,今天打字可能有很多錯誤,大家看的時候仔細一點,不懂得多看看msdn, 要提高水平只有靠自己,別人是幫不了你的