国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > VBScript > 正文

使用腳本自動(dòng)壓縮指定目標(biāo)下的所有文件的代碼

2020-06-26 18:30:48
字體:
供稿:網(wǎng)友
有的時(shí)候,需要對(duì)一個(gè)目錄下所有的某種類型文章進(jìn)行壓縮(例如WORD文檔、MP3等)。如果使用手工,則數(shù)量少的時(shí)候還可以。如果多的話,則不勝其煩
 
為了解決這類問題,我使用Visual Basic Scripting設(shè)計(jì)了一個(gè)腳本,可以自動(dòng)達(dá)到這個(gè)目標(biāo)。在本腳本中,自動(dòng)壓縮所有文件。為了避免將腳本自己也壓縮進(jìn)去,使用了一些判斷。 
復(fù)制代碼代碼如下:

call main() 
Sub main() 
Dim fs '文件系統(tǒng)。 
Dim f 'folder 
Dim fc 'files 
Dim s 'string 
Dim ws 'SHELL。 
Dim subfs 
Dim fi 
'創(chuàng)建SHELL。 
Set ws = CreateObject("WScript.Shell") 
'創(chuàng)建文件對(duì)象。 
Set fs = CreateObject("Scripting.FileSystemObject") 
Set f = fs.GetFolder(ws.currentdirectory) 
Handle_files(ws.currentdirectory) 
Set subfs = f.SubFolders 
'遍歷每個(gè)子目錄。 
For Each fi In subfs 
Call ListSub(fi.Path) 
Next 
End Sub 
Sub ListSub(filename) 
On Error Resume Next 
Dim subfs '子目錄。 
'首先處理當(dāng)前目錄。 
Handle_Files(filename) 
'創(chuàng)建文件對(duì)象。 
Set fs = CreateObject("Scripting.FileSystemObject") 
Set f = fs.GetFolder(filename) 
Set subfs = f.SubFolders 
For Each fi In subfs 
Call ListSub(fi.Path) 
Next 
End Sub 
'處理每個(gè)目錄下的文件。 
Sub Handle_Files(foldername) 
'創(chuàng)建文件對(duì)象。 
Set fs = CreateObject("Scripting.FileSystemObject") 
Set f = fs.GetFolder(foldername) 
Set fc = f.Files 
'創(chuàng)建SHELL。 
Set ws = CreateObject("WScript.Shell") 
'遍歷文件對(duì)象。 
For Each fl In fc 
if ((instr(fl.Name,"vbs") = 0) and (instr(fl.Name,"rar") = 0)) then 
'進(jìn)行壓縮。 
s = "winrar M -ep " & fl.Path & ".rar " & fl.Path 
ws.Run s, 0, True 
End If 
Next 
End Sub 
sub output(string) 
wscript.echo string 
end sub 

一種更加巧妙的方法 
對(duì)上個(gè)腳本稍加改動(dòng),使用正則表達(dá)式(Regular Expression ),可以方便我們的判斷過程。修改后的腳本程序如下所示。注意我們這里排除的是不壓縮的文件類型。
復(fù)制代碼代碼如下:

call main() 
Sub main() 
Dim fs '文件系統(tǒng)。 
Dim f 'folder 
Dim fc 'files 
Dim s 'string 
Dim ws 'SHELL。 
Dim subfs 
Dim fi 
'創(chuàng)建SHELL。 
Set ws = CreateObject("WScript.Shell") 
'創(chuàng)建文件對(duì)象。 
Set fs = CreateObject("Scripting.FileSystemObject") 
Set f = fs.GetFolder(ws.currentdirectory) 
Handle_files(ws.currentdirectory) 
Set subfs = f.SubFolders 
'遍歷每個(gè)子目錄。 
For Each fi In subfs 
Call ListSub(fi.Path) 
Next 
End Sub 
Sub ListSub(filename) 
On Error Resume Next 
Dim subfs '子目錄。 
'首先處理當(dāng)前目錄。 
Handle_Files(filename) 
'創(chuàng)建文件對(duì)象。 
Set fs = CreateObject("Scripting.FileSystemObject") 
Set f = fs.GetFolder(filename) 
Set subfs = f.SubFolders 
For Each fi In subfs 
Call ListSub(fi.Path) 
Next 
End Sub 
'處理每個(gè)目錄下的文件。 
Sub Handle_Files(foldername) 
'創(chuàng)建文件對(duì)象。 
Set fs = CreateObject("Scripting.FileSystemObject") 
Set f = fs.GetFolder(foldername) 
Set fc = f.Files 
'創(chuàng)建SHELL。 
Set ws = CreateObject("WScript.Shell") 
'遍歷文件對(duì)象。 
For Each fl In fc 
if ( RegExpTest(".vbs|.rar|.zip",fl.name) = false) then 
'進(jìn)行壓縮。 
s = "winrar M -ep " & fl.Path & ".rar " & fl.Path 
output s 
ws.Run s, 0, True 
End If 
Next 
End Sub 
sub output(string) 
wscript.echo string 
end sub 
'使用正則表達(dá)式進(jìn)行判斷。 
Function RegExpTest(patrn, strng) 
Dim regEx, retVal ' Create variable. 
Set regEx = New RegExp ' Create regular expression. 
regEx.Pattern = patrn ' Set pattern. 
regEx.IgnoreCase = False ' Set case sensitivity. 
retVal = regEx.Test(strng) ' Execute the search test. 
If retVal Then 
RegExpTest = true 
Else 
RegExpTest = false 
End If 
End Function 
 

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 科尔| 津市市| 府谷县| 南江县| 东乡县| 安仁县| 达拉特旗| 高台县| 大城县| 浙江省| 嘉义市| 湘潭市| 高唐县| 定南县| 乌兰浩特市| 徐汇区| 女性| 太原市| 阿拉善左旗| 芷江| 兴宁市| 乡宁县| 永定县| 锡林浩特市| 榆林市| 屏南县| 康马县| 安吉县| 延吉市| 莆田市| 兴和县| 长子县| 文登市| 中宁县| 台湾省| 聂拉木县| 鹤庆县| 永靖县| 安图县| 且末县| 宝丰县|