2015-10-23 44 views
-1

我以前從未使用過腳本或vbs文件,而且我最近才熟悉VB。我需要編寫一個腳本來打開指定位置的.TS(基本上是.txt)文件,並將它們重命名爲在其中找到的ID號。這裏是我的代碼,到目前爲止,我相信它已經不僅僅是這些錯誤的我可以識別:逐行讀取.txt文件,並根據文件中的特定ID號重命名文件使用vbs

Imports System.IO 

Dim folder 
folder = "C:\temp" 

For each file in Directory.GetFiles(folder, "R00*.TS") 

Dim filename 
filename = Path.GetFileName(file).ToString() 

Const ForReading = 1 
Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set objFile = objFSO.OpenTextFile((Path.Combine(folder, filename)), _ 
ForReading) 

Do Until objFile.AtEndOfStream 
objFile.ReadLine 
If line.contains("RECORDER ID:") Then 
    Dim RID 
    RID = line.Substring(13, 24) 
    objFile.close 
    objFSO.MoveFile filename, RID + ".txt" 
    End If 
Loop 
Next 

的的ID號總是在同一個地方顯然讓我硬編碼了它的位置(一旦正確的路線是標識)。我不確定VB和vbs的語法差異(如果有的話)。

我的當前錯誤的instace - 由Windows腳本宿主給出 - 是「對象要求:系統」代碼:800A01A8第1行字符1.我猜我缺少或使用不正確的導入?

回答

1
Imports System.IO 

是VB腳本解釋器不知道或需要的.NET構造。

實際上,您將需要創建的CreateObject使用FileSystemObject的一個ActiveX對象(「Scripting.FileSystemObject的」)

你可能想看看這篇文章: MSDN,並記住,VB腳本和VB(.NET)絕對沒有什麼共同之處,但有些語法。

+0

好了,做完了,現在出現一個錯誤「Object required:'Directory'」line 5 char 1,它在.net中需要導入。是否有不同的方式通過循環訪問本地文件路徑中的多個文件? –

+0

對,您需要刪除.NET BCL的所有用法,然後使用objFSO。 – SvenAelterman

+0

我先發布的鏈接有支持的函數列表,例如Set fldr = objFSO.GetFolder(「C:\ Temp」) – SvenAelterman