世纪天猫 2023-01-21 00:05 采纳率: 0%
浏览 53
已结题

VBS脚本错误出手解决一下

Set fso=Wscript.CreateObject("Scripting.FileSystemObject")
set f=fso.opentextfile("config.ini")
s=replace(f.readall, "@en", "SimpleChinese.ini")
f.close
set r=fso.opentextfile("config.ini",2,true)
r.write s
Wscript.quit

img


这是为啥,哪里错了怎么改!

  • 写回答

5条回答 默认 最新

  • 快撑死的鱼 2023-01-21 01:04
    关注
    • 这段 VBS 脚本的目的是读取 "config.ini" 文件中的内容,替换其中的 "@en" 为 "SimpleChinese.ini",并将替换后的内容写入 "config.ini" 文件。

    • 错误可能是由于 fso.opentextfile("config.ini",2,true) 中的第二个参数 2 导致的。它表示要打开文件的模式,1 表示只读模式,2 表示写入模式,8 表示追加模式。

    • 在这里,您需要将第二个参数改为 8,如 fso.opentextfile("config.ini",8,true) 这样就可以将修改后的内容追加到文件末尾,而不是覆盖原文件。

    • 另外,如果需要将更改写回文件中,还需要使用 r.close 关闭文件。

    修改后的脚本如下:

    Set fso=Wscript.CreateObject("Scripting.FileSystemObject")
    set f=fso.opentextfile("config.ini")
    s=replace(f.readall, "@en", "SimpleChinese.ini")
    f.close
    set r=fso.opentextfile("config.ini",8,true)
    r.write s
    r.close
    Wscript.quit
    
    • 如果您在运行此脚本时遇到 "无效的过程调用或参数"错误,这可能是因为您正在尝试打开一个不存在的文件。请检查您的文件路径是否正确,确保文件存在并可供脚本读取。

    • 也可能是因为 replace 函数没有定义,在 vbs 中 replace 函数是 string.replace() ,需要用s.replace("@en","SimpleChinese.ini") 这样的方式调用,同时需要注意是否在脚本的开头加上了 Option Explicit 来强制定义变量,如果没有,可能会导致错误。
      修改后的代码如下:

    Set fso=Wscript.CreateObject("Scripting.FileSystemObject")
    set f=fso.opentextfile("config.ini")
    s=f.readall
    f.close
    s=replace(s, "@en", "SimpleChinese.ini")
    set r=fso.opentextfile("config.ini",2,true)
    r.write s
    r.close
    Wscript.quit
    
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 1月29日
  • 创建了问题 1月21日