最近遇到乙個應用,要求將指定資料夾下的所有 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...