18. oktober 2005 - 11:33Der er
14 kommentarer og 1 løsning
Samkopier mange filer
Hej Eksperter,
jeg har ca 20.000 små tekst filer, som jeg ønsker at kopiere sammen til 1 stor fil. Hvordan gør jeg det? Findes der evt. et eller anden lille program som kan gøre det. Filerne ligger på min Windows XP maskine.
Man kan gøre det med følgende i en .bat fil: @echo off Set Counter=0 echo.>Dest0.log for /F "tokens=*" %%I in ('dir /B *.txt') do call :Process "%%I" goto :eof
:Process set /A Next=%counter% + 1 copy /B Dest%Counter%.log + %1 Dest%Next%.%log del Dest%Counter%.log set Counter=%Next%
Det forudsætter at der IKKE findes nogle destxxx.log filer i mappen. Det forudsætter at alle tekst filerne hedder .txt (og ikke .log) Resultatet kommer til at hedde Dest19999.log hvis du har 20000 .txt filer.
if strPath = vbNullString then MsgBox("Du skal vælge en fil") Exit Sub else Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFolder = objFSO.GetFolder(Left(strPath, InStrRev(strPath, "\")))
strSep = VbCrLf & "----------" & VbCrLf
for each objFile in objFolder.Files Set objTs = objFile.OpenAsTextStream(1, -2) strContentSamlet = strContentSamlet & objTs.ReadAll & strSep next
objFSO.CreateTextFile strScriptPath & "SamletFil.txt" Set objFile = objFSO.GetFile(strScriptPath & "SamletFil.txt") Set objTs = objFile.OpenAsTextStream(2, -2) objTs.Write strContentSamlet objTs.Close
MsgBox("Færdig!")
Set objFSO = Nothing Set objFolder = Nothing Set objFile = Nothing Set objTs = Nothing end if End Sub
bertelbrander> pjat med dig, kom så med et svar ;o) ldanielsen> jeg tror du har ret, men da det kun skal foregå en enkelt gang, kan jeg leve med det. Men godt du postede VB svaret, hvis andre kan bruge det.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.