国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 广东省| 禹州市| 绥中县| 岗巴县| 噶尔县| 黄山市| 阿鲁科尔沁旗| 临武县| 凉城县| 南木林县| 大冶市| 乃东县| 阿克陶县| 托克托县| 太白县| 临夏县| 平果县| 虹口区| 澄城县| 岳阳市| 阿荣旗| 青岛市| 六枝特区| 新昌县| 宜城市| 塔河县| 浪卡子县| 清苑县| 北安市| 青冈县| 岢岚县| 崇文区| 洛南县| 沅江市| 广宗县| 昭觉县| 满城县| 张掖市| 石嘴山市| 锡林浩特市| 乌苏市|