我正在尝试将平面文件转换为Excel可读格式。我们收到使用波浪号(〜)作为字段分隔符的文本文件,我想将其转换为使用Tab字符的文件。我有兴趣从命令行运行它,我需要灵活处理文件名,所以我想使用参数。我的VBScript如下:
Set Args = WScript.Arguments
Set inf = Args(0)
Set outf = Args(1)
Const ForReading = 1
Const ForWriting = 2
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(infile.Value , ForReading)
strContents = objFile.ReadAll
objFile.Close
strContents = Replace(strContents, "~", vbTab)
Set objFile = objFSO.OpenTextFile(outfile.Value , ForWriting)
objFile.Write strContents
objFile.Close
出于某种原因,我收到错误 Object required:'[string:“infile.txt”]'。使用infile,infile.Value或infile.ToString作为objFSO.OpenTextFile(infile, ForReading)
中的参数似乎不起作用。
VBScript不是我的强项,有没有人有任何帮助?
答案 0 :(得分:2)
命令行参数是字符串而不是对象,因此无需使用Set
关键字进行分配:
inf = Args(0)
outf = Args(1)
另请注意,上面的代码已经为您提供了参数值,因此无需使用.Value
,.ToString
等(事实上,这样做会导致运行时误差)。
您的脚本中存在拼写错误 - inf
和outf
变量后来被称为infile
和outfile
。