vbs檔案操作

2021-09-08 09:10:29 字數 3855 閱讀 3997

最近遇到乙個應用,要求將指定資料夾下的所有 html 檔案中包含的某些文字的檔案給改名。下面是我寫的乙個 vbs 檔案:

'關鍵字配置檔案位址 

const

config ="

e:\cleandata\key.txt"'

要檢查的資料夾 

const

dir ="

d:\log\html\"'

日誌儲存路徑 

const

logdir ="

e:\cleandata\log\"'

全域性物件 

setfso

=createobject("

scripting.filesystemobject

")  

dimkeywordlist(

10000

)rem

: **********= 啟動主程式 

dimstarttime , endtime

starttime 

=now

call

main()

endtime 

=now

setfso 

=nothing

msgbox

"恭喜!操作已完成。時間從:"&

starttime &"

到 "&endtime   ,

4096,"

檔案重新命名

"rem

:  **********= 主程式

submain()

wscript.echo 

"開始。。。"&

nowcall

getkeyword()

call

getfiles(dir)

end sub

rem:  **********=  讀取配置檔案

subgetkeyword()

setsdir 

=createobject("

scripting.dictionary

")  

setfile 

=fso.opentextfile(config)  

dowhile

file.atendofstream

<>

truem=

m+1sdir.add m,file.readline  

dimword

word 

=sdir(m)

'wscript.echo word 

iflen

(trim

(word) )

>

0then

keywordlist(m)

=word

endif

loop

file.close  

setfile 

=nothing

end sub

rem:  **********= 獲取檔案列表 

subgetfiles(path)

setfolder 

=fso.getfolder(path)

setsubfolder 

=folder.subfolders

setfile 

=folder.files

foreach

s_file in file

'wscript.echo s_file.path

checkword s_file.path

next

foreach

s_subfolder in subfolder

getfiles(s_subfolder.path)    

'遞迴呼叫 

next

end sub

rem:  **********=  比較配置檔案,判斷是否包含關鍵字 

subcheckword(path)

'wscript.echo path

dimcontent , file 

setfile 

=fso.opentextfile(path, 1, 

false

) content 

=file.readall

file.close

setfile 

=nothing

fori=0

toubound

(keywordlist)

word 

=keywordlist(i)

ifinstr

(content, word )

>

0and

len(word)

>

0then

wscript.echo path &"

已匹配到:"&

word

'set file = nothing 

renamesubpage path

exit

forend

ifnext

end sub

rem: **********= 將檔案重新命名

subrenamesubpage(path)

iffso.fileexists(path) 

=true

then

dimtarget , ext

ext ="

.bak

"target 

=path 

&ext

'***** 方法一 

fso.movefile path , target

'***** 方法二 

'set f = fso.getfile( path)

'f.name = f.name & ext 

'f.close 

'set f = nothing 

writelog target

endif

end sub

rem:  **********=  處理日誌

subwritelog(strmsg)

dimlogtxt

logtxt 

=logdir &"

dellog-"&

year

(now) &

"-"&

month

(now) &

"-"&

day(

now) &"

.txt

"dim

f if

fso.fileexists(logtxt) 

then

setf 

=fso.opentextfile(logtxt, 8)

else

setf 

=fso.opentextfile(logtxt, 2, 

true

)end

iff.writeline strmsg 

f.close 

setf 

=nothing

'===== 方法2 

'set objshell = createobject("wscript.shell") 

'cmd = "%comspec% /k echo " & strmsg & " >> " &  logtxt & "  && exit"

'objshell.run(cmd) ,vbhide

'掛起允許,防止在任務管理器裡產生過多的 cmd.exe 程序 ,如果有多個程序,請用 taskkill /f /im cmd.exe   關閉

'set objshell = nothing 

wscript.sleep 

5end sub

key.txt 檔案的內容:

關鍵字一

關鍵字一

vbs 版批量重新命名

出處:

VBS 檔案操作

vbs 檔案操作 對於檔案的操作,例如 生成乙個或者開啟乙個或者刪除乙個.txt格式檔案。雖然官方的file外掛程式提供了一些基本功能,但功能不多。你並不需要理解什麼是fso模版,什麼是vbs語句,直接套用下面的語句吧!紅色字為自己定義的部分,藍色字為任意選一部分 如果你看不懂,請參考下面的例子!操...

vbs檔案操作指令碼例項

vbs檔案操作指令碼例項 2009年11月04日 星期三 11 03 2009年10月23日 下午 02 45 1.建立乙個新的文字檔案,如果檔案已經存在則報告錯誤 rem 在當前盤根目錄下建立 測試.txt 並寫入乙個字串 vbs dim fso,file,filename vbs filenam...

vbs 搜尋檔案

set wantfind createobject scripting.filesystemobject set ws createobject wscript.shell dim r1,r2,r3 r1 inputbox 請輸入搜尋範圍 dir r2 inputbox 請輸入搜尋檔案 file t...