您好,腳本專(zhuān)家!我希望能夠打開(kāi)文件,讀取前 10 個(gè)字符,然后將該文件重命名為這 10 個(gè)字符加上文件擴展名 .txt。我該怎么做?
-- KA
您好,KA。這個(gè)文本文件問(wèn)題不需要通過(guò)某種奇怪復雜的解決辦法來(lái)解決。這個(gè)問(wèn)題實(shí)際上相當簡(jiǎn)單:我們可以使用 FileSystemObject 打開(kāi)文本文件,讀取前 10 個(gè)字符,然后使用 FileSystemObject 將該文件重命名為這 10 個(gè)字符加上文件擴展名 .txt。正如您看到的,所有這些操作只需幾行代碼:
Const ForReading = 1Set objFSO = CreateObject("Scripting.FileSystemObject")Set objFile = objFSO.OpenTextFile("C:\Scripts\Log.txt", ForReading)strCharacters = objFile.Read(10)objFile.ClosestrNewName = "C:\Scripts\" & strCharacters & ".txt"objFSO.MoveFile "C:\Scripts\Log.txt", strNewName我們首先定義一個(gè)名為 ForReading 的常量,將值 1 賦給它;我們打開(kāi)要讀取的文本文件時(shí)將使用該常量。然后我們創(chuàng )建 FileSystemObject 的一個(gè)實(shí)例,并使用 OpenTextFile 方法打開(kāi)文件 C:\Scripts\Log.txt。打開(kāi)文件后,我們讀取前 10 個(gè)字符并將這些數據存儲在變量 strCharacters 中:
strCharacters = objFile.Read(10)
正如您可以看到的,我們可以使用 Read 方法從文本文件讀取指定的字符數。假定我們要從文件讀取前 37 個(gè)字符,怎么辦呢?沒(méi)問(wèn)題,我們只需使用下面這行代碼:
strCharacters = objFile.Read(37)
關(guān)閉該文件后,我們構建新文件名,它由文件夾路徑 (C:\Scripts\)、我們剛才讀取的 10 個(gè)字符(由變量 strCharacters 表示)和新文件擴展名 (.txt) 構成。這也只需要一行代碼:
strNewName = "C:\Scripts\" & strCharacters & ".txt"
現在只剩下重命名文件了。我們可以通過(guò)使用 FileSystemObject 的 MoveFile 方法來(lái)執行此操作。(不要被名稱(chēng)欺騙了;在本例中,文件只是從它的舊名稱(chēng)“移動(dòng)”到它的新名稱(chēng);沒(méi)有改變該文件在文件系統中的位置。)我們向 MoveFile 傳遞兩個(gè)參數:文件的當前路徑和文件的新路徑。聽(tīng)起來(lái)很荒唐,但在同一文件夾中“移動(dòng)”文件的實(shí)際效果就是重命名它。很奇怪,但卻是事實(shí)!
聯(lián)系客服