2010-02-09 49 views
2

我试图使用使用VBScript

Set myFSO = CreateObject("Scripting.FileSystemObject") 
Set outputFile = myFSO.OpenTextFile(getOutputName(Argument, getMsiFileName(Wscript.Arguments)), forWriting, True) 
outputFile.WriteLine(s) 

变量s包含了我从另一个文件中读取一个中国字符写一些字中国到一个文本文件中写入字符中国到一个文本文件中。我回显s值,我可以在屏幕中正确地看到s。但是,由于某些原因,脚本在outputFile.WriteLine(s)之后停止运行,但不返回任何错误消息。

我错过了什么吗?

回答

3

也许这与字符编码有关。尝试直接指定Unicode格式的文件中OpenTextFile方法的最后一个参数:

Const Unicode = -1 
Set outputFile = myFSO.OpenTextFile(getOutputName(Argument, getMsiFileName(Wscript.Arguments)), forWriting, True, Unicode) 

此外,您还需要关闭文件写入到它后:

outputFile.Close 

如果这不帮助,请尝试错误处理,如AnthonyWJones suggested

+0

+1,尼斯接球,我错过了最后一个参数,并被仍然无法解释的行为所分心。 – AnthonyWJones 2010-02-10 11:22:16

+0

太棒了,谢谢。 – Stef 2012-02-09 16:21:26

1

试试这个: -

MsgBox "Writing Line" 
On Error Resume Next 
outputFile.WriteLine s '' # Removed () that shouldn't be there. 
MsgBox "Err " & Err.Number & ": " & Err.Description 
On Error GoTo 0 

您能得到什么?

+0

脚本不会提示任何东西,该脚本应该写文本文件被创建,但它是空的。 – Omar 2010-02-09 22:07:42