看板 EZsoft 關於我們 聯絡資訊
隨手亂寫,還請其他高手見諒。 使用方式為要做處理檔案請手動拖曳到底下這個檔案的圖示上即可。 (可圈選大量檔案,並拖曳) 檔案會直接輸出到與來源相同的目錄 注意:若是你丟入的檔案副檔名是 .html 的話,則輸出時會覆蓋原檔!! ps. *** 表示請自己把下一行接上去 pps. 請使用者自行負擔使用風險 --------8<------------- (複製虛線內文字另存為 .vbs) Dim objFSO : Set objFSO = CreateObject("Scripting.FileSystemObject") Dim objStream : Set objStream = CreateObject("ADODB.Stream") Dim objArgs : Set objArgs = WScript.Arguments Dim fpath, ftmp, file, i, sid, sname, scat If objArgs.Count < 1 Then WScript.Quit End if '// 設定編碼格式與讀取方式 objStream.Charset = "UTF-8" objStream.Type = 2 For i = 0 to objArgs.Count - 1 fpath = objArgs(i) ftmp = Mid(fpath, InStrRev(fpath, "\") + 1, *** InStrRev(fpath, ".") - InStrRev(fpath, "\") - 1) '// 擷取檔名 sid = Mid(ftmp, 1, InStr(ftmp, "-") - 1) sname = Mid(ftmp, InStr(ftmp, "-") + 1, *** InStrRev(ftmp, "-") - InStr(ftmp, "-") - 1) scat = Mid(ftmp, InStrRev(ftmp, "-") + 1, Len(ftmp) - InStrRev(ftmp, "-")) '// 開啟 objStream objStream.Open objStream.LoadFromFile fpath '// 讀入檔案內容 ftmp = objStream.ReadText '// 關閉 objStream objStream.Close '// 替換字串 ftmp = Replace(ftmp, "$ID", sid, 1, -1, 1) ftmp = Replace(ftmp, "$Name", sname , 1, -1, 1) ftmp = Replace(ftmp, "%Name", sname, 1, -1, 1) ftmp = Replace(ftmp, "$CAT", scat, 1, -1, 1) '// 設定存檔路徑與檔名 fpath = Mid(fpath, 1, InStrRev(fpath, ".") - 1) & ".html" objStream.Open objStream.WriteText ftmp '// 輸出檔案 objStream.SaveToFile fpath, 2 objStream.Close Next --------8<------------- (複製虛線內文字另存為 .vbs) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.204.46.87
rwhung:感謝,成功跑出來. 不過因為原檔案為UTF-8,結果變成亂碼 06/27 02:19
rwhung:請教如何修正 06/27 02:19
rwhung:結果反而全部都變亂碼了,格式全跑掉 06/27 04:09
rwhung:註:原檔案中有中文,$Name也有中文(字串) 06/27 04:12
rwhung:找到原因了,因為轉出來的檔案為『UTF16-LE』所以要先把原 06/27 13:00
rwhung:檔轉成『 UTF16-LE』,再丟過就可以,謝謝hpo大幫忙 06/27 13:02
已經另外修正好了,請重新複製一次虛線內檔案,存檔使用即可。 此次,會直接以 UTF-8 來讀寫檔案本身,所以不用在另外轉檔。 ※ 編輯: hpo14 來自: 123.204.46.87 (06/27 14:58)
rwhung:太感動!你還重寫一遍. 成功達成需求,感恩. 06/27 15:13
yangmilk:推 06/27 16:54
mvp04:認真推 06/27 18:38