2012-06-15 3 views
0

XML 파일을 쿼리를 통해 SQL 서버에로드하고 있는데 문제는 다중 네임 스페이스 문제가있는 10x10 테이블입니다. 나는이 코드를 vbscript로 해결할 수 있다고 생각했다.xml 파일 읽기, 항목 찾기 및 편집 및 원본 파일 저장

Dim FSO, FLD, FIL 

Dim strFolder 

strFolder = "C:\Documents and Settings\Administrator\Desktop\Tests" 

Set FSO = CreateObject ("Scripting.FileSystemObject") 

Set FLD = FSO.GetFolder (strFolder) 


For Each FIL in FLD.Files 

Set objFS = CreateObject("Scripting.FileSystemObject") 

i=1 

Set objFile = objFS.OpenTextFile(FIL) 

Do Until objFile.AtEndOfStream 

    strLine = objFile.ReadLine 

    If i=1 and InStr(strLine,"Data")> 0 Then 

     strLine = Replace(strLine,"Data","Data1") 

i=i+1 

ElseIf i=2 and InStr(strLine,"Data")> 0 Then 

     strLine = Replace(strLine,"Data","Data1") 

i=i+1 

ElseIf i=3 and InStr(strLine,"Data")> 0 Then 

     strLine = Replace(strLine,"Data","Data2") 

i=i+1 

ElseIf i=4 and InStr(strLine,"Data")> 0 Then 

     strLine = Replace(strLine,"Data","Data2") 

i=i+1 

ElseIf i=5 and InStr(strLine,"Data")> 0 Then 

     strLine = Replace(strLine,"Data","Data3") 

i=i+1 

ElseIf i=6 and InStr(strLine,"Data")> 0 Then 

     strLine = Replace(strLine,"Data","Data3") 

i=i+1 

ElseIf i=7 and InStr(strLine,"Data")> 0 Then 

     strLine = Replace(strLine,"Data","Data4") 

i=i+1 

ElseIf i=8 and InStr(strLine,"Data")> 0 Then 

     strLine = Replace(strLine,"Data","Data4") 

i=i+1 

ElseIf i=9 and InStr(strLine,"Data")> 0 Then 

     strLine = Replace(strLine,"Data","Data5") 

i=i+1 

ElseIf i=10 and InStr(strLine,"Data")> 0 Then 

     strLine = Replace(strLine,"Data","Data5") 

i=i+1 

ElseIf i=11 and InStr(strLine,"Data")> 0 Then 

     strLine = Replace(strLine,"Data","Data6") 

End If 


    WScript.Echo strLine 

Loop 

next 

When I run this via command prompt: 

cd c:\ 

cscript /nologo Script.vbs >newfile 

ren newfile example.xml 

저장되는 example.xml 파일은 완전합니다. 그러나 폴더 "테스트"에서 하나의 파일 만 저장하면 제대로 작동합니다. 하나 이상의 파일을 저장하고 같은 방법으로 cmd를 사용하면이 모든 파일을 연속해서 저장합니다. 이 작업을 수행하는 데 필요한 약 3,000 개의 파일이 있습니다. 각 .xml 파일에서 스크립트를 실행 한 다음 동일한 이름 (새 위치에 겹쳐 쓰는)으로 new.xml로 저장합니다. 폴더. 같은 이름으로 편집을 사용하여 저장하는 방법은 무엇입니까? 당신의 도움이

답변

0

는, 난독 대회의 어떤 무엇에 대한

감사합니다? 나는 다음과 같이 스크립트를 다시 제안 :

strFolder = "C:\Documents and Settings\Administrator\Desktop\Tests" 
strFolderResult = "C:\Documents and Settings\Administrator\Desktop\Tests\Result" 

Set FSO = CreateObject("Scripting.FileSystemObject") 
For Each f In FSO.GetFolder(strFolder).Files 
    i = 1 
    Set inFile = f.OpenAsTextStream(1) 
    Set outFile = FSO.CreateTextFile(FSO.BuildPath(strFolderResult, f.Name), true) 
    Do Until inFile.AtEndOfStream 
     strLine = inFile.ReadLine 
     If InStr(strLine, "Data") > 0 Then 
      If i < 12 Then i = i + 1 
      strLine = Replace(strLine, "Data", "Data" & i \ 2) 
     End If 
     outFile.WriteLine(strLine) 
    Loop 
    inFile.Close 
    outFile.Close 
Next 
+0

놀라운 팬더-34는 내가 .. 때문에 VB에서 내 경험 부족으로 가능성이 접선에 떨어져 갔다 이 많은 감사, 완벽한 일 - 나는 또한 새로운 단어를 배웠습니다 – user1459431