亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vbs腳本怎么實現批量轉換文件編碼

發布時間:2021-07-28 17:53:57 來源:億速云 閱讀:425 作者:chen 欄目:開發技術

這篇文章主要介紹“vbs腳本怎么實現批量轉換文件編碼”,在日常操作中,相信很多人在vbs腳本怎么實現批量轉換文件編碼問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”vbs腳本怎么實現批量轉換文件編碼”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

復制代碼 代碼如下:


'-------------------------------------------------

'函數名稱:ReadFile

'作用:利用AdoDb.Stream對象來讀取各種格式的文本文件

'-------------------------------------------------

Function ReadFile(FileUrl, CharSet)
    Dim Str
    Set stm = CreateObject("Adodb.Stream")
    stm.Type = 2
    stm.mode = 3
    stm.charset = CharSet
    stm.Open
    stm.loadfromfile FileUrl
    Str = stm.readtext
    stm.Close
    Set stm = Nothing
    ReadFile = Str
End Function

我們使用ReadFile函數讀取文件,其中FileUrl指定文件的路徑,CharSet指定文件的原始編碼格式,使用adodb.stream對象讀取文件內容到Str。

復制代碼 代碼如下:


'-------------------------------------------------

'函數名稱:WriteToFile

'作用:利用AdoDb.Stream對象來寫入各種格式的文本文件

'-------------------------------------------------

Function WriteToFile (FileUrl, Str, CharSet)
    Set stm = CreateObject("Adodb.Stream")
    stm.Type = 2
    stm.mode = 3
    stm.charset = CharSet
    stm.Open
    stm.WriteText Str
    stm.SaveToFile FileUrl, 2
    stm.flush
    stm.Close
    Set stm = Nothing
End Function

然后使用WriteToFile將Str寫回原文件FileUrl,并設定新的編碼CharSet。

復制代碼 代碼如下:


'-------------------------------------------------

'函數名稱:ConvertFile

'作用:將一個文件進行編碼轉換

'-------------------------------------------------

Function ConvertFile(FileUrl)
    Call WriteToFile(FileUrl, ReadFile(FileUrl, SrcCode), DestCode)
End Function

這樣ConvertFile對上述兩個函數封裝,實現文件FileUrl的編碼轉換,其中原始編碼SrcCode與目的編碼DestCode為全局變量。

如果僅對一個文件進行編碼轉換,我們不必這么大費周章。我們希望能對任意的文件或文件夾內的所有文件進行編碼轉換,達到批量轉換的目的。

復制代碼 代碼如下:

'-------------------------------------------------

'函數名稱:ConvertDir

'作用:將任意目錄內的文件進行編碼轉換

'-------------------------------------------------

Function ConvertDir(DirUrl)
    If fs.FileExists(DirUrl) Then
       Call ConvertFile(DirUrl)
    Else
       Call SearchDir(DirUrl)
    End If
End Function

函數ConvertDir對任意路徑的文件/文件夾進行編碼轉換,使用scripting.filesystemobject對象的FileExists函數判斷路徑對應的是文件還是文件夾,如果是文件則直接調用ConvertFile進行編碼轉換,否則調用SearchDir處理文件夾。

復制代碼 代碼如下:


'-------------------------------------------------

'函數名稱:SearchDir

'作用:遞歸查找目錄內的文件,進行編碼轉換

'-------------------------------------------------

Function SearchDir(path)  
    Set folder = fs.getfolder(path)
    Set subfolders = folder.subfolders
    Set Files = folder.Files  
    For Each i In Files
       Call ConvertFile(i.path)
    Next  
    For Each j In subfolders      
       Call SearchDir(j.path)
    Next
End Function

函數SearchDir是遞歸的,首先調用getfolder創建文件夾對象,然后取出文件夾內的子文件夾集合subfolders和子文件集合files。對于每個子文件,直接調用ConvertFile進行編碼轉換即可,而對于每個子文件夾,則遞歸調用SearchDir重復處理。

復制代碼 代碼如下:


'-------------------------------------------------

'設置編碼:默認 utf-8  --> gb2312

'-------------------------------------------------

SrcCode="utf-8"
DestCode="gb2312"

'-------------------------------------------------

'解析參數

'-------------------------------------------------

Set fs = CreateObject("scripting.filesystemobject")
Set objArgs = WScript.Arguments
If objArgs.Count>0 Then
    For I = 0 To objArgs.Count - 1
       FileUrl = objArgs(I)
       Call ConvertDir(FileUrl)
    Next
Else
    MsgBox "沒有文件/文件夾被拖入!"
    wscript.quit
End If

MsgBox "轉換成功!"

最后通過解析腳本文件的參數,由于每個參數對應一個文件/文件夾的路徑,將之傳遞給ConvertDir即可。這里默認的是將UTF-8編碼轉化為GB2312編碼,讀者可以根據自身需要自行修改。

將上述代碼保存為ConvertCode.vbs,只需要將任意多個文件選中拖動到該腳本文件上即可。或者使用命令行。

復制代碼 代碼如下:

> ConvertCode.vbs [filepath]

需要注意的是文件編碼是就地轉換的,在轉換之前最好將原文件/文件夾進行備份。

最后附上腳本文件的所有代碼。

復制代碼 代碼如下:

'/*===========================================================' * Intro        把要轉換的多個文件/文件夾拖到該文件上即可' * FileName     ConvertCode.vbs' * Author       Florian' * Version      v1.0' * LastModify  2014-06-11 00:39:58' *==========================================================*/
'-------------------------------------------------'設置編碼:默認    utf-8    -->    gb2312'-------------------------------------------------
SrcCode="utf-8"DestCode="gb2312"
'-------------------------------------------------'解析參數'-------------------------------------------------
Set fs = CreateObject("scripting.filesystemobject")Set objArgs = WScript.ArgumentsIf objArgs.Count>0 Then    For I = 0 To objArgs.Count - 1        FileUrl = objArgs(I)        Call ConvertDir(FileUrl)    NextElse    MsgBox "沒有文件/文件夾被拖入!"    wscript.quitEnd IfMsgBox    "轉換成功!"
'-------------------------------------------------'函數名稱:ConvertDir'作用:將任意目錄內的文件進行編碼轉換'-------------------------------------------------
Function ConvertDir(DirUrl)    If fs.FileExists(DirUrl) Then          Call ConvertFile(DirUrl)    Else        Call SearchDir(DirUrl)    End IfEnd Function
'-------------------------------------------------'函數名稱:SearchDir'作用:遞歸查找目錄內的文件,進行編碼轉換'-------------------------------------------------
Function SearchDir(path)        Set folder = fs.getfolder(path)    Set subfolders = folder.subfolders    Set Files = folder.Files        For Each i In Files        Call ConvertFile(i.path)    Next        For Each j In subfolders                Call SearchDir(j.path)    NextEnd Function
'-------------------------------------------------'函數名稱:ConvertFile'作用:將一個文件進行編碼轉換'-------------------------------------------------
Function ConvertFile(FileUrl)    Call WriteToFile(FileUrl, ReadFile(FileUrl, SrcCode), DestCode)End Function
'-------------------------------------------------'函數名稱:ReadFile'作用:利用AdoDb.Stream對象來讀取各種格式的文本文件'-------------------------------------------------
Function ReadFile(FileUrl, CharSet)    Dim Str    Set stm = CreateObject("Adodb.Stream")    stm.Type = 2    stm.mode = 3    stm.charset = CharSet    stm.Open    stm.loadfromfile FileUrl    Str = stm.readtext    stm.Close    Set stm = Nothing    ReadFile = StrEnd Function
'-------------------------------------------------'函數名稱:WriteToFile'作用:利用AdoDb.Stream對象來寫入各種格式的文本文件'-------------------------------------------------
Function WriteToFile (FileUrl, Str, CharSet)    Set stm = CreateObject("Adodb.Stream")    stm.Type = 2    stm.mode = 3    stm.charset = CharSet    stm.Open    stm.WriteText Str    stm.SaveToFile FileUrl, 2    stm.flush    stm.Close    Set stm = NothingEnd FunctionView Code

到此,關于“vbs腳本怎么實現批量轉換文件編碼”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

vbs
AI

甘肃省| 龙井市| 玉门市| 鹤峰县| 红安县| 宿州市| 衢州市| 温泉县| 眉山市| 新民市| 珠海市| 中阳县| 中江县| 油尖旺区| 大荔县| 灵寿县| 平远县| 绩溪县| 基隆市| 徐州市| 进贤县| 普兰店市| 丹江口市| 庐江县| 鄂托克旗| 常山县| 合水县| 内江市| 逊克县| 芒康县| 来凤县| 铜山县| 醴陵市| 密云县| 陆川县| 高密市| 双辽市| 深圳市| 和静县| 黑龙江省| 开平市|