首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VBScript删除行

VBScript删除行
EN

Stack Overflow用户
提问于 2013-05-13 18:58:42
回答 1查看 206关注 0票数 0

我有一个用cfg文件中的时区替换另一个时区的VBScript,该文件每6小时运行一次。替换后的代码运行得很好,除了一个问题,每次我运行脚本时,VBScript都会删除第一行。cfg文件如下所示:

代码语言:javascript
复制
//
// config.cfg
//
// comments are written with "//" in front of them.


// GLOBAL SETTINGS
hostname = "Blablabla (v1.7.6.1/Build 103718) [REGULAR|3DP:ON|CH:ON][UTC-2] - SomeMoreCharactersAndText

虽然每次运行时,VBScript都会删除顶行,但VBScript会将UTC-2更改为其他正常运行的代码,因此在运行3次后看起来如下所示:

代码语言:javascript
复制
// comments are written with "//" in front of them.
// GLOBAL SETTINGS
hostname = "Blablabla (v1.7.6.1/Build 103718) [REGULAR|3DP:ON|CH:ON][UTC-2] - SomeMoreCharactersAndText

在运行六次之后,它将删除主机名行本身。我想知道VBScript代码是不是有什么问题?我从一个批处理文件执行VBScript,该批处理文件如下所示:

代码语言:javascript
复制
@echo off
echo Setting Current Timezone...
cd "C:\Program Files (x86)\Steam\SteamApps\common\Arma 2 CO\dayz_1.chernarus"
rename config_XXXXXX.cfg config_XXXXXX_old.cfg
cscript /nologo myreplace.vbs  > newfile
ren newfile config_XXXXXX.cfg
del config_XXXXXX_old.cfg

这是VBScript本身:

代码语言:javascript
复制
Set objFS = CreateObject("Scripting.FileSystemObject")
strFile = "C:\Program Files (x86)\Steam\SteamApps\common\Arma 2 CO\dayz_1.chernarus\config_XXXXXX_old.cfg"
Set objFile = objFS.OpenTextFile(strFile)
strLine = objFile.ReadLine
Do Until objFile.AtEndOfStream
    strLine = objFile.ReadLine
    If InStr(strLine,"UTC-8")> 0 Then
        strLine = Replace(strLine,"UTC-8","UTC+10")
    ElseIf InStr(strLine,"UTC+10")> 0 Then
        strLine = Replace(strLine,"UTC+10","UTC+4")
    ElseIf InStr(strLine,"UTC+4")> 0 Then
        strLine = Replace(strLine,"UTC+4","UTC-2")
    ElseIf InStr(strLine,"UTC-2")> 0 Then
        strLine = Replace(strLine,"UTC-2","UTC-8")
    End If
    WScript.Echo strLine
Loop
objFile.Close

提前感谢!你好,汤姆。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-13 19:04:26

脚本的IO部分的结构:

代码语言:javascript
复制
strLine = objFile.ReadLine  (a)
Do Until objFile.AtEndOfStream
    strLine = objFile.ReadLine (b)
    ...
    WScript.Echo strLine (c)
Loop

显示第一行(a)没有回显,而后面的所有行(b)都回显。

尝试:

代码语言:javascript
复制
strLine = objFile.ReadLine  (a)
WScript.Echo strLine (c)
Do Until objFile.AtEndOfStream
    strLine = objFile.ReadLine (b)
    ...
    WScript.Echo strLine (c)
Loop
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16520453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档