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


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

  • 这段 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

记事本编辑vbs截图。

按照你的截图中,看到的是错误提示,翻译过来就是说你写的这个脚本的第6行的参数有问题,你核对下,打开文件的这个方法的参数个数,参数类型和参数值是否符合要求。

也有一个可能是字符编码的问题。我之前遇到的是写入txt文件的时候的内容中有 Unicode 格式的字符,而记事本文件默认是 ANSI 编码的,所以无法写入并提示以下出错,解决办法是:
在vbs中将包含Unicode格式的字符用chrw替换换
例如:字符“•”的编码为•,那么在vbs中加入以下代码对此字符进行替换处理,替换后再写入到文件中,代码如下:
Content = Replace(Content, chrw(8226), "")
同理,如果碰到其他Unicode字符可用同样的方法替换。

这段 VBS 脚本是用来打开一个文本文件 "config.ini",将其中所有出现的 "@en" 替换为 "SimpleChinese.ini" 的字符串,然后将更改后的内容重新写入该文件。

具体来说,第一行创建了一个 FileSystemObject 对象,第二行打开了 "config.ini" 文件并将其赋值给变量 f。第三行使用 replace() 函数替换了 f.readall 中的 "@en" 为 "SimpleChinese.ini",并将结果赋值给变量 s。第四行关闭了文件 f,第五行使用 "config.ini" 作为文件名打开了一个文本文件并将其赋值给变量 r。第六行使用 r.write 写入变量 s 中的内容。最后一行使用 Wscript.quit 退出脚本。

如果你遇到错误,可能是文件路径有误或文件不存在,请检查文件路径是否正确。

这段 VBS 脚本是用来打开一个文本文件 "config.ini",将其中所有出现的 "@en" 替换为 "SimpleChinese.ini" 的字符串,然后将更改后的内容重新写入该文件。

具体来说,第一行创建了一个 FileSystemObject 对象,第二行打开了 "config.ini" 文件并将其赋值给变量 f。第三行使用 replace() 函数替换了 f.readall 中的 "@en" 为 "SimpleChinese.ini",并将结果赋值给变量 s。第四行关闭了文件 f,第五行使用 "config.ini" 作为文件名打开了一个文本文件并将其赋值给变量 r。第六行使用 r.write 写入变量 s 中的内容。最后一行使用 Wscript.quit 退出脚本。

如果你遇到错误,可能是文件路径有误或文件不存在,请检查文件路径是否正确。