2012-07-24 2 views
1

한 번에 두 변수를 VBScript로 읽을 수 있기를 원합니다. 내가하고있는 일은 여러 HTML 파일의 특정 텍스트를 대체하는 것입니다. 이미이 작업을 위해 작성된 스크립트가 있지만 한 번에 하나의 텍스트 세트 만 입력해야합니다. 커맨드 라인 예 :VB 스크립트의 txt 파일에서 여러 변수 읽기

C> replace.vbs (OldText()를 newText) (OldText) 및 (를 newText)는 두 변수가

. 스크립트가 한 번에 하나씩 읽어

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

하고 있습니다

strOldText = WScript.Arguments.Item(0) 
strNewText = WScript.Arguments.Item(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" 
+0

Chris에게 감사드립니다. 전에는 사용 해보지 않았지만 훌륭했습니다! – Scape

+0

반가워요. PowerShell은 간단하고 유연하며 Microsoft가 현재 그리고 앞으로도 받아 들일 수있는 스크립팅 언어입니다. 확인 해봐! –

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