2010-07-19 60 views
0

我試圖將平面文件轉換爲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 

出於某種原因,我得到所需的錯誤對象:[字符串:‘infile.txt’]「。使用infile,infile.Value或infile.ToString作爲參數objFSO.OpenTextFile(infile, ForReading)似乎不起作用。

VBScript不是我的強項,有沒有人有任何幫助?

回答

2
  1. 命令行參數是字符串,不是對象,所以沒有必要使用分配的Set關鍵字:

    inf = Args(0) 
    outf = Args(1) 
    
  2. 還要注意的是,上面的代碼已經給你一個參數值,所以不需要使用.Value.ToString等(實際上,這樣做會導致運行時錯誤)。

  3. 有是在腳本中錯別字—的infoutf變量以後簡稱infileoutfile

+0

感謝您的指針。我最初在Sub中有轉換部分,但是當我開始遇到錯誤時將其拉出。 – taserian 2010-07-19 19:22:56

相關問題