从VBscript中的文本文件中读取多个变量

时间:2012-07-24 13:45:27

标签: scripting vbscript windows-scripting filesystemobject

我希望能够一次读入两个变量到VBScript中。我正在做的是从一堆HTML文件中替换某些文本。我已经编写了一个脚本来执行此操作,但我必须一次只输入一组文本。命令行示例:

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)

并让脚本一次读取一个?

我的查找和替换代码完美无缺。我只想自动化脚本从文本文件中读取参数,而不是在命令提示符下一次输入一个参数。

非常感谢任何帮助。如果需要进一步的信息,请告诉我。我希望它很清楚。 感谢

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

我可能会将PowerShell用于整个事情,而不仅仅是调用脚本,但我认为这应该可行。如果没有,问题可能在于我试图在我的例子中调用vbscript。

的PowerShell:

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

CSV内容:

OldText,NewText
"String 1","String 2"
"String 3,"String 4"