Question

I want to be able read in two variables at a time into a VBScript. What I'm doing is replacing certain text from a bunch of HTML files. I have a script already written to do this, but I have to input only one set of text at a time. Command line Example:

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

where (OldText) and (NewText) are both parameters.

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

Is there a way to have a text file set up like:

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

and have the script read one at a time?

My find and replace code works perfectly. I would just like to automate the script to read the parameters from the text file rather than me typing them in one at a time in command prompt.

Any help is greatly appreciated. If further information is needed please let me know. I hope it's clear. Thanks

Was it helpful?

Solution

I would probably use PowerShell for the whole thing instead of just to call the script, but I think this should work. If not, the problem is probably in how I'm trying to call the vbscript in my example.

PowerShell:

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

CSV content:

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

OTHER TIPS

Are you looking for something like this?

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
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top