一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - VBS - 使用腳本自動壓縮指定目標下的所有文件的代碼

使用腳本自動壓縮指定目標下的所有文件的代碼

2020-08-05 11:01VBS之家 VBS

有的時候,需要對一個目錄下所有的某種類型文章進行壓縮(例如WORD文檔、MP3等)。如果使用手工,則數量少的時候還可以。如果多的話,則不勝其煩

為了解決這類問題,我使用Visual Basic Scripting設計了一個腳本,可以自動達到這個目標。在本腳本中,自動壓縮所有文件。為了避免將腳本自己也壓縮進去,使用了一些判斷。

復制代碼 代碼如下:


call main()
Sub main()
Dim fs '文件系統。
Dim f 'folder
Dim fc 'files
Dim s 'string
Dim ws 'SHELL。
Dim subfs
Dim fi
'創建SHELL。
Set ws = CreateObject("WScript.Shell")
'創建文件對象。
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(ws.currentdirectory)
Handle_files(ws.currentdirectory)
Set subfs = f.SubFolders
'遍歷每個子目錄。
For Each fi In subfs
Call ListSub(fi.Path)
Next
End Sub
Sub ListSub(filename)
On Error Resume Next
Dim subfs '子目錄。
'首先處理當前目錄。
Handle_Files(filename)
'創建文件對象。
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
'處理每個目錄下的文件。
Sub Handle_Files(foldername)
'創建文件對象。
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(foldername)
Set fc = f.Files
'創建SHELL。
Set ws = CreateObject("WScript.Shell")
'遍歷文件對象。
For Each fl In fc
if ((instr(fl.Name,"vbs") = 0) and (instr(fl.Name,"rar") = 0)) then
'進行壓縮。
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


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

復制代碼 代碼如下:


call main()
Sub main()
Dim fs '文件系統。
Dim f 'folder
Dim fc 'files
Dim s 'string
Dim ws 'SHELL。
Dim subfs
Dim fi
'創建SHELL。
Set ws = CreateObject("WScript.Shell")
'創建文件對象。
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(ws.currentdirectory)
Handle_files(ws.currentdirectory)
Set subfs = f.SubFolders
'遍歷每個子目錄。
For Each fi In subfs
Call ListSub(fi.Path)
Next
End Sub
Sub ListSub(filename)
On Error Resume Next
Dim subfs '子目錄。
'首先處理當前目錄。
Handle_Files(filename)
'創建文件對象。
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
'處理每個目錄下的文件。
Sub Handle_Files(foldername)
'創建文件對象。
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(foldername)
Set fc = f.Files
'創建SHELL。
Set ws = CreateObject("WScript.Shell")
'遍歷文件對象。
For Each fl In fc
if ( RegExpTest(".vbs|.rar|.zip",fl.name) = false) then
'進行壓縮。
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
'使用正則表達式進行判斷。
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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: www.伊人| 久久精品男人影院 | 91麻豆国产| 国产人妖ts在线视频网 | 午夜精品在线视频 | 国产成人免费片在线视频观看 | 接吻吃胸摸下面啪啪教程 | 亚洲欧美成人综合久久久 | 玩高中女同桌肉色短丝袜脚文 | 五月天色网站 | 欧美日韩高清一区 | 日韩性生活片 | 美女的让男人桶爽免费看 | 色综合网天天综合色中文男男 | 无限在线看免费视频大全 | 九九99热久久999精品 | 粉嫩极品国产在线观看免费 | 无套日出白浆在线播放 | 刺客女仆 | 国产美女亚洲精品久久久综合91 | 色综合久久中文字幕网 | 美女张开腿黄网站免费精品动漫 | 成人人免费夜夜视频观看 | 欧美精品国产一区二区 | 王的视频视ivk | 四虎影视在线观看永久地址 | 乌克兰少妇大胆大BBW | 四虎在线永久免费视频网站 | 精品女同同性视频很黄很色 | 久久精品国产免费播高清无卡 | 6080窝窝理论 | 污到湿的爽文免费阅读 | 欧美亚洲第一区 | 国产精品九九热 | 国产一区二区精品久 | 奇米成人 | 国产99在线| 四虎永久在线精品波多野结衣 | 欧洲老太玩小伙 | 日本福利视频一区 | 青青草原伊人网 |