首页 > 编程 > VBScript > 正文

用vbs读取远程计算机上的文本文件的代码

2019-10-26 17:58:59
字体:
来源:转载
供稿:网友
问:
您好,脚本专家!如何读取远程计算机上的文本文件?
-- BM
答:
您好,BM。我们得承认:我们在利用您和您的问题来达成我们自己的邪恶目的。本周早些时候我们回答了有关如何读取一组文本文件最后一行的问题;在回答中,我们承诺将会说明如何使用 FileSystemObject 对远程计算机执行同样的功能。这并无恶意,只是为了维护本专栏的精神,除非有人提出有关对远程计算机上的文本文件进行处理的问题,我们是不会做出回答的。于是我们选择了您的问题。
因此,没错,我们在利用您。但如果往好处想,您的问题得到了回答。事实上,让我们先来看一看您的问题。
如您所知,FileSystemObject(用于读写文本文件的对象)的原本用于本地;而事实上,您读过的有关 FileSystemObject 的任何材料差不多都会煞费苦心地指出,不能对远程计算机使用该对象。尽管事实并非完全如此:那是因为 FileSystemObject 可以使用 UNC 路径。假定要读取的文件位于文件共享目录中 (//atl-fs-01/public/myfile.txt)。在这种情况下,打开和读取文本文件就像下面的代码那样简单:
复制代码 代码如下:

Const ForReading = 1 
Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set objTextFile = objFSO.OpenTextFile _ 
    ("//atl-fs-01/public/myfile.txt", ForReading) 
strContents = objTextFile.ReadAll 
objTextFile.Close 
Wscript.Echo strContents 

如您所看到的,我们先是定义一个名为 ForReading 的常量并将其值设置为 1。然后创建 FileSystemObject 引用,并调用 OpenTextFile 方法,传递两个参数:要操作的文件的 UNC 路径及常量 ForReading。此时我们已经可以对文件进行所需的任何操作:给您举一个操作文本文件的简单例子:调用 ReadAll 方法将文件的全部内容读入名为 strContents 的变量中。然后关闭文件并回显 strContents 的值,就是这样。
目前,只要待操作的文件位于共享文件夹中,这段代码便很有效。但如果文件不在共享文件夹中,该怎么办呢?在这种情况下,就只能使用管理共享(如 C$)。即使尚未共享文件夹 C:/Public,以下脚本也能够读取文件 MyFile.txt:
复制代码 代码如下:

Const ForReading = 1 
Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set objTextFile = objFSO.OpenTextFile _ 
    ("//atl-fs-01/C$/public/myfile.txt", ForReading) 
strContents = objTextFile.ReadAll 
objTextFile.Close 
Wscript.Echo strContents 
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表