
脚本?嗯,我们喜欢脚本。真是奇怪,我们想不出它有什么不好的。实际上,一提到脚本,我们 -
是的,我们承认:尽管我们的确认为脚本很不错,不过,毫无疑问,它常常搞得我们焦头烂额。例如,我们正在编写需要定期向文本文件中添加信息的脚本。尽管我们在处理文本文件方面没有太多的经验,但是,我们在 Internet 上找到了一些示例代码,这些示例代码可以读取文本文件的当前内容并将这些信息存储到某个变量(变量名为 strContents)中。由此开始,我们随后添加了一些我们自己编写的代码,用来将附加信息添加到 strContent 的值中,然后使用 FileSystemObject 将修改后的内容写回到文本文件中。下面是我们编写的小脚本,它可实现所有这些操作:
On Error Resume Next
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile("c:\scripts\test.txt", 1)
Do Until objTextFile.AtEndOfStream
strContents = objTextFile.ReadAll
Loop
strContents = strContents & vbCrLf & "This line was added at the end of the file."
Wscript.Echo strContents
objTextFile.Write strContents
objTextFile.Close
谢谢;我们也曾经认为该代码相当不错。唯一的问题是,它未起任何作用。首先,我们的文本文件中包含下面一行内容:
Here's the existing content in our file.
我们的脚本能够成功打开,并能读取该文件的内容。该脚本还可将另外一行内容 (This line was added at the end of the file) 添加到 strContents 中。我们是如何知道这些的呢?是这样,为了以防万一,我们添加了一行用来回显变量 strContents 的值的代码。以下即为我们调用 Wscript.Echo 后所得到的结果:
Here's the existing content in our file. This line was added at the end of the file.
好极了;这正是我们想要的结果。成功修改完 strContents 的值后,我们随后使用 FileSystemObject 的 Write 方法将新值写入到文本文件中。当执行这些操作时,我们未收到任何错误消息;不幸的是,我们也没有得到被添加到文本文件中的新文本行。事实上,在运行该脚本后,所得到的文本文件的内容如下:
Here's the existing content in our file.
没错:其仍保持原样。我们成功修改了内存中的文件内容,但出于某种原因,该脚本未能修改实际文件本身的内容。可是,我们没有收到任何错误消息来指出我们不能这样做的原因。您知道,有时候,脚本会令我们如此发狂,只是为了能够 -
嗯,我们这里所指的是:这个脚本的问题到底出在哪儿?