I'm trying to convert a flat file into an Excel-readable format. We receive the text file that uses the tilde (~) as a field delimiter, and I want to convert it into one that uses the Tab character. I'm interested in running this from the command line, and I need to be flexible with the filenames, so I want to use parameters. The VBScript I have for it is as follows:
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
For some reason, I get the error Object required: '[string: "infile.txt"]'. Using either infile, infile.V开发者_JS百科alue or infile.ToString as the argument in objFSO.OpenTextFile(infile, ForReading)
doesn't seem to work.
VBScript not being my strong point, does anyone have any help?
Command-line parameters are strings and not objects, so there's no need to use the
Set
keyword for assignments:inf = Args(0) outf = Args(1)
Note also that the above code already gives you the parameter values, so there's no need to use
.Value
,.ToString
etc (in fact, doing this will result in a run-time error).There're typos in your script — the
inf
andoutf
variables are later referred to asinfile
andoutfile
.
精彩评论