2017-12-27 7 views
0

나는 스크립트를 작성 중이며 txt 파일을 읽고 줄을 찾은 다음이를 바꿀 수있는 방법을 알고 싶었습니다. 예를 들어VBScript에서 동적으로 행을 업데이트하는 방법은 무엇입니까?

, I는 다음과 같이 거기에 몇 가지 매개 변수 선이 ImportParms.txt라는 txt 파일이있는 경우 :

 
cmdFile=E:\Jobs\UPCS\Parms\ImportParms.upcs_cmd 
Process=StandardImport 
LogFile=e:\JOBS\UPCS\Logs\ImportLog.txt 
File=E:\jobs\UPCS\TestImportFile.txt 
ImportRejects=No 
RenameToOld=No 
RenameDateStamp=No 
ResultsReport="Public Reports\ImportResult" 
LinkExisting=Custom1 

내가 File=something.txt가 실행될 때마다 말한다 라인을 업데이트 할를.

'Run processbot to update 
Set oFile = oFSO.GetFile(sUtilOut) 
If oFile.Size <> 0 Then 
    strFile = sWORK & "\parms\" & BOTPARMFILE 
    Set objFile = objFS.OpenTextFile(strFile) 
    Do Until objFile.AtEndOfStream 
     strLine = objFile.ReadLine 
     'If first for characters = "file" 
      'delete this line 
      strFile.Write "file=" & sUtilOut 
     'End If 
    Loop 
    objFile.Close 

    sBotCmd = """"& sWORK & "\" & BOTPROG & """ " _ 
       & " cmdFile=""" & sWORK & "\parms\" & BOTPARMFILE & """ " 

    sCmd = sBotCmd 
    Call OutMsg(isVerbose, isVerbose, sSysLog, "Command: " & sCmd) 
    iRetC = oShell.Run(sCmd, 0, True) 
    Call OutMsg(isVerbose, isVerbose, sSysLog, "RC: " & iRetC) 
    If iRetC <> 0 Then 
     Call OutMsg(isVerbose, isVerbose, sSysLog, "Exiting with code " _ 
      & rcPROCBOT) 
     WScript.Quit(rcPROCBOT) 
    End If 
End If 

답변

1

당신은 수정할 수 없습니다 : 대신

sCmd = sBotCmd & " file=""" & sUtilOut &""" " 

를 필요없이 그냥 다음과 같습니다 EXE 파일을 실행합니다 내 코드의 일부에서

sCmd = sBotCmd 

말할 수 있도록 파일을 제자리에 놓습니다. 파일이 작아서 전체 내용을 읽었 으면 수정 한 다음 다시 작성하십시오.

이 교체 :이와

Set objFile = objFS.OpenTextFile(strFile) 
Do Until objFile.AtEndOfStream 
    strLine = objFile.ReadLine 
    'If first for characters = "file" 
     'delete this line 
     strFile.Write "file=" & sUtilOut 
    'End If 
Loop 
objFile.Close 

을 : 당신의 도움에 대한

txt = objFS.OpenTextFile(strFile).ReadAll 

Set re = New RegExp 
re.Pattern = "^(File=)[^\r\n]*" 
re.MultiLine = True 

fso.OpenTextFile(strFile, 2).Write re.Replace(txt, "$1" & sUtilOut) 
+0

감사합니다! 그게 내가 찾고 있었던 것이고, 나는 VBScript에서 RegEx를 사용할 수 있다는 것을 깨닫지 못했다. 전체 파일을 다시 써야한다고 생각했지만, 한 줄씩 그 파일을 작성하려고 시도했다. 하나는 그것을 대체하지만,이 방법은 훨씬 나아 보인다! –

관련 문제