You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VBScript写入文本文件时新行追加至首行旁而非末尾的问题排查

解决VBScript文件追加时新行与首行同行的问题

我一眼就看出问题出在哪了——你第一次迭代写入临时文件的时候,没有给内容加上换行符!

当你用Write()方法写入字符串时,只会把字符串原封不动地写入文件,末尾不会自动添加Windows系统的换行标记(vbCrLf)。所以处理后的原文件内容末尾是没有换行的,第二次迭代用WriteLine()追加时,系统会认为你是接着上一行的末尾继续写,自然就出现了两行内容挤在一行的情况。

修复方案

只需要修改第一次迭代中写入临时文件的代码,把Write()换成WriteLine(),或者手动给写入的字符串加上换行符就行。下面是修改后的完整代码:

For Iterator = 1 to 2
    sF1 = "C:\Users\ig.ext\Desktop\Automation\Archivo.txt"
    '#Opening file
    Dim objFS
    Dim objFile
    strTemp = "C:\Users" & Environment("UserName") & "\Desktop\Automation\Temp.txt"
    Set objFS = CreateObject("Scripting.FileSystemObject")
    
    If Iterator = 1 Then
        Set objFile = objFS.OpenTextFile(sF1)
        content = objFile.ReadLine
        '#Creating temporal file
        Set objOutFile = objFS.CreateTextFile(strTemp,True)
    Else
        Set objFile = objFS.OpenTextFile(sF1, 8)
    End If
    
    sResultado = "004;J2Yf;18090023;20200725;00000509990;VOLVO;D;YFWfS9Z9lu06ftR78;D;FA;18090023"
    
    If Iterator = 1 Then
        '# 修改这里:用WriteLine替代Write,自动添加换行符
        objOutFile.WriteLine(sResultado)
        objOutFile.Close
        objFile.Close
        objFS.DeleteFile(sF1)
        objFS.MoveFile strTemp,sF1
    else
        '#Write line and close
        objFile.Writeline(sResultado)
        objFile.Close
    End If
Next

为什么这样改?

  • WriteLine()方法会在写入的字符串末尾自动添加Windows系统的换行符(vbCrLf),这样处理后的原文件末尾就有了换行标记。
  • 第二次迭代用OpenTextFile(sF1, 8)以追加模式打开文件后,WriteLine()写入的内容就会自动从新的一行开始,完美符合你的预期结果。

如果你不想用WriteLine(),也可以手动拼接换行符:objOutFile.Write(sResultado & vbCrLf),效果是完全一样的。

内容的提问来源于stack exchange,提问作者Ivan Garrido

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:29:23