您好,登錄后才能下訂單哦!
本篇內容介紹了“利用fso來進行文件操作的方法”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
不說廢話,先看fso由哪幾個對象組成:
drive對象:包含儲存設備的信息,包括硬盤,光驅,ram盤,網絡驅動器
drives集合:提供一個物理和邏輯驅動器的列表
file 對象:檢查和處理文件
files 集合:提供一個文件夾中的文件列表
folder對象:檢查和處理文件夾
folders集合:提供文件夾中子文件夾的列表
textstream對象:讀寫文本文件
看看fso的方法:由于很多,所以我不會把每個的作用寫出來,如果有不懂的,自己查一下msdn。不要說沒有哦
bulidpath:把文件路徑信息添加到現有的文件路徑上
copyfile
copyfolder
createfolder
createtextfile
deletefile
deletefolder
dreveexits
fileexits
folderexists
getabsolutepathname:返回一個文件夾或文件的絕對路徑
getbasename:返回一個文件或文件夾的基本路徑
getdrive:返回一個dreve對象
getdrivename:返回一個驅動器的名字
getextensionname:返回擴展名
getfile:返回一個file對象
getfilename:返回文件夾中文件名稱
getfolder
getparentfoldername:返回一個文件夾的父文件夾
getspecialfolder:返回指向一個特殊文件夾的對象指針
gettempname:返回一個可以被createtextfile使用的隨機產生的文件或文件夾的名稱
movefile
movefolder
opentextfile
好了,看到這里我想大家也明白了一大半,可能后面都不用我多說了,腳本就是這么簡單,呵呵呵,還是繼續把。
1、使用fso
由于fso不是wsh的一部分,所以我們需要建立他的模型
例如set fs=wscript.createobject(“scripting.filesystemobject”)
這樣就建立了fso的模型。如果要釋放的話也很簡單,set fs=nothing
2、使用文件夾
創建:
在創建前我們需要檢查是否存在,看一下程序
***************************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”
關于通配符:
我們可以使用統配符,來方便操作:
例如, fs.movefolder :c:\data\te*” , “d:\working”
注意到沒有,我在目的路徑最后沒有使用“\” 也就是說我沒有這樣寫:
fs.movefolder :c:\data\te*” , “d:\working\”
這樣寫的話,如果d:\working 目錄不存在,windows就不會為我們自動創建這個目錄。
還有一點,大家注意到沒有 上面說的都沒有涉及到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
特殊文件夾
一般指的就是系統文件夾:\windows\system32, 臨時文件夾,windows文件夾
看下面,我們使用環境變量來獲得windows目錄,關于環境變量我們會在后面詳細講道,如果我忘記了 請大家提醒我
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文件夾,相關常量是windowsfolder
1 系統文件夾,相關常量是systemfolder
2 臨時目錄,相關常量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的文件屬性,所以會發生不可預測的結果,如果文件的屬性是0,那么就會變成1。所以最好在改變屬性前查詢
創建
創建前需要檢查文件是否存在,方法和前面說的文件夾的方法一樣
*****************************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” ‘刪除
“利用fso來進行文件操作的方法”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。