2012-07-24 138 views
1

我希望能夠將兩個變量一次讀入VBScript。我正在做的是從一堆HTML文件中替換某些文本。我已經編寫了一個腳本來執行此操作,但我一次只能輸入一組文本。命令行示例:在VB腳本中從txt文件中讀取多個變量

C:> replace.vbs(OldText)(NewText)

其中(OldText)和(NewText)是這兩個參數。

strOldText = WScript.Arguments.Item(0) 
strNewText = WScript.Arguments.Item(1) 

有沒有辦法有一個文本文件設置,如:

(OldText) (NewText) 
(OldText) (NewText) 
(OldText) (NewText) 
(OldText) (NewText) 

,並有腳本讀取一個時間?

我的查找和替換代碼完美地工作。我只想自動化腳本從文本文件中讀取參數,而不是在命令提示符下一次輸入一個參數。

任何幫助,非常感謝。如果需要更多信息,請告訴我。我希望這很清楚。 謝謝

回答

1

我可能會使用PowerShell的整個事情,而不是隻調用腳本,但我認爲這應該工作。如果沒有,問題可能在於我如何在我的示例中調用vbscript。

的PowerShell:

Import-CSV textReplace.csv | % { 
    wscript.exe replace.vbs $_.OldText $_.NewText 
} 

CSV內容:

​​
+0

謝謝克里斯。我以前從未使用過,但效果很好! – Scape 2012-07-25 12:33:18

+0

很好聽。 PowerShell簡單,靈活,並且是Microsoft現在和可預見的將來所採用的腳本語言。一探究竟! – 2012-07-26 12:54:17

2

你在找這樣的嗎?

strDelimiter = " " 

strInfilePath = "C:\Path to file to read.txt" 

Const ForReading = 1 

Set objFso = CreateObject("Scripting.FileSystemObject") 
Set objInfile = objFso.OpenTextFile(strInfilePath, ForReading) 

Do While Not objInfile.AtEndOfStream 
    strLine = objInfile.ReadLine 
    arrParts = Split(strLine, strDelimiter) 
    strOldText = arrParts(0) 
    strNewText = arrParts(1) 
Loop 
+0

Nilpo,這個作品也,我試過兩個答案只是爲了好玩。謝謝您的幫助! – Scape 2012-07-25 12:34:52