Vbscript 使用vbs逐行读取.txt文件并根据文件中的特定ID号重命名文件

Vbscript 使用vbs逐行读取.txt文件并根据文件中的特定ID号重命名文件,vbscript,Vbscript,我以前从未使用过脚本或vbs文件,直到最近才开始熟悉VB。我需要编写一个脚本,从指定位置打开.TS(基本上是.txt)文件,并将它们重命名为在中找到的ID号。这是我迄今为止的代码,我确信它不仅仅是我能识别的错误: Imports System.IO Dim folder folder = "C:\temp" For each file in Directory.GetFiles(folder, "R00*.TS") Dim filename filename = Path.GetFile

我以前从未使用过脚本或vbs文件,直到最近才开始熟悉VB。我需要编写一个脚本,从指定位置打开.TS(基本上是.txt)文件,并将它们重命名为在中找到的ID号。这是我迄今为止的代码,我确信它不仅仅是我能识别的错误:

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
显然,IDnumber总是在同一个地方,所以我硬编码了它的位置(一旦识别出正确的行)。我不确定VB和vbs的语法差异(如果有)

Windows脚本主机给出的instace当前错误是“所需对象:系统”代码:800A01A8,第1行字符1。我猜我丢失了或使用了不正确的导入

Imports System.IO 
是VB脚本解释器不知道或不需要的.NET结构

您将需要使用CreateObject(“Scripting.FileSystemObject”)创建FileSystemObject ActiveX对象

您可能希望看到这篇文章:
请记住,VB脚本和VB(.NET)除了某些语法之外,没有任何共同之处。

Ok done and done,现在出现错误“Object required:'Directory'”第5行char 1,在.NET中需要导入。是否有其他方法通过循环访问本地文件路径中的多个文件?是的,您需要删除对.NET BCL的所有使用,改用objFSO。我首先发布的链接包含支持的函数列表,例如Set fldr=objFSO.GetFolder(“C:\Temp”),我查看了链接中的方法,看起来我必须硬编码文件夹中文件的名称才能打开每个文件。如果我不知道每个文件的完整文件名,是否有一种类似于我最初编写的打开具有特定名称属性(“R00*.TS”)的所有文件的方法?是的,您可以。文件夹对象上有一个文件属性。您可以在集合中循环文件对象,然后检查该文件是否是您要查找的文件。