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
这是为啥,哪里错了怎么改!
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
这段 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