VBScript:将文本文件读入另一个文件而不跳过最后一行

VBScript: Read a text file into another one without skipping last line

我目前正在编写一个 VBscript 来将数据从一个文本文件复制到另一个文本文件,目的是跳过第一行。 我得到了一个使用我在网上找到的一些代码的版本,但它不仅跳过第一行(这部分正在工作)而且由于某种原因它也跳过最后一行。我不想跳过最后一行,但我不知道代码的哪一部分实际上跳过了我的最后一行。 需要:复制除第一行以外的所有行(行) 当前代码:复制除第一行和最后一行之外的所有行(行)

文本文件都是 CSV 文件。 任何人都知道如何实现我的需要,或者我的代码的哪一部分实际上让最后一行跳过? 提前致谢。

这是代码:

Sub ChangeCSV(strPath,strCPath)
    Dim objFileSys
    Dim objInText,objOutText
    Dim strData1,strData2
    Dim wFlg
    
    
    wFlg = False

    Set objFileSys = CreateObject("Scripting.FileSystemObject")
    
    Set objInText = objFileSys.OpenTextFile(strPath, 1)
    
    
    Set objOutText = objFileSys.OpenTextFile(strCPath, 2, True)
        

    If objInText.AtEndOfLine = False Then objInText.ReadLine
    
    
    Do Until objInText.AtEndOfLine  = True
        strData1 = objInText.ReadLine
        If wFlg Then
            objOutText.WriteLine strData2
        Else
            wFlg = True
        End If
        strData2 = strData1
    Loop

    
    objInText.Close
    objOutText.Close
    Set objInText = Nothing
    Set objOutText = Nothing
    Set objFileSys = Nothing

End Sub

您想使用 AtEndOfStream 属性 而不是 AtEndOfLine。下面的代码应该可以满足您的期望:

Dim objFileSys
Dim objInText, objOutText
Dim strLine

Set objFileSys = CreateObject("Scripting.FileSystemObject")
Set objInText = objFileSys.OpenTextFile(strPath, 1)
Set objOutText = objFileSys.OpenTextFile(strCPath, 2, True)

' Read first line
If Not objInText.AtEndOfStream Then objInText.ReadLine

' Read remaining lines
Do While Not objInText.AtEndOfStream
    
    ' Get line from source file
    strLine = objInText.ReadLine
    
    ' Write line to destination file
    If objInText.AtEndOfStream Then
        objOutText.Write strLine
    Else
        ' Create a new line after writing the line
        objOutText.WriteLine strLine
    End If
    
Loop

objInText.Close
objOutText.Close

Set objInText = Nothing
Set objOutText = Nothing
Set objFileSys = Nothing

在最后一行,它使用Write方法来避免在目标文件的末尾创建一个额外的空行。