03. maj 2012 - 10:09Der er
8 kommentarer og 1 løsning
Tilføj tekst i ini-filer
Jeg har en mappestruktur (antallet varierer fra dag til dag) som denne: S:\DocPost\Mail\BATCH\kundenummer(9 cifre)\mailadr I hver af disse mapper er der en eller flere ini-fil(er), 6210_K_kundenummer_fakturanummer_dato_klokkeslæt.ini som indeholder en linie (altid linie 6): Subject=Faktura/kontoudtog for deres konto Alt tekst er autogenereret og jeg har ikke mulighed for at ændre i det.
eks: mappe\fil\linie: S:\DocPost\Mail\BATCH\000333333\dhjk@gmail.com 6210_K_000333333_4816225_03-05-2012_09_12_25.ini Subject=Faktura/kontoudtog for deres konto
S:\DocPost\Mail\BATCH\000006843\fiktiv@minmail.com 6210_K_000006843_4815220_03-05-2012_0 9_10_09.ini Subject=Faktura/kontoudtog for deres konto
Hvorledes får jeg tilføjet kundenummer og '-' til sidst i den oplyste linie så der kommer til at stå som i nedenstående eks., jeg kan sagtens leve med at de foran stillede nuller kommer med. Subject=Faktura/kontoudtog for deres konto 333333 - Subject=Faktura/kontoudtog for deres konto 6843 -
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Det er ikke samme script, desværre. Mapper og filer dannes automatisk via ERP-systemet og det har jeg desværre ikke indflydese på. Hvorledes skal dine eks. skrive i scriptet hvis der nu er xx-antal mapper, jeg har ikke de store erfraringer med script-programmering.
Hvis du smider det ind i notepad og gemmer som .vbs - så skulle du gerne have et script her :)
Prøv evt. lige at vælge "HovedMappe" til at være et andet sted først, for lige at tjekke om det er sådan du vil have det.
Dim fso Set fso = WScript.CreateObject("Scripting.Filesystemobject") Const ForReading = 1, ForWriting = 2, ForAppending = 8
HovedMappe = "S:\DocPost\Mail\BATCH"
For Each Mappe in fso.GetFolder(HovedMappe).SubFolders Kundenr = Mappe.Name If IsNumeric(kundenr) Then Kundenr = CLng(Kundenr) End If For Each Fil In fso.GetFolder(Mappe.Path).Files If fso.GetExtensionName(Fil.Path) = "ini" Then Set rFil = fso.OpenTextFile(Fil.Path,1) BygStr = "" FirstLine = False Do until rFil.AtEndOfStream Readlinje = rFil.ReadLine If FirstLine = False Then If Left(Readlinje,7) = "Subject" Then BygStr = Readlinje & " " & Kundenr Else BygStr = Readlinje End If FirstLine = True Else If Left(Readlinje,7) = "Subject" Then BygStr = BygStr & vbCrLf & Readlinje & " " & Kundenr Else BygStr = BygStr & vbCrLf & Readlinje End If End If Loop rfil.Close
Set wFil = fso.OpenTextFile(Fil.Path,2) wFil.Write(BygStr) wFil.Close End If Next Next
For Each Mappe in fso.GetFolder(HovedMappe).SubFolders Kundenr = Mappe.Name If IsNumeric(kundenr) Then Kundenr = CLng(Kundenr) End If
For Each Mappe2 In fso.GetFolder(Mappe.Path).SubFolders For Each Fil In fso.GetFolder(Mappe2.Path).Files If fso.GetExtensionName(Fil.Path) = "ini" Then Set rFil = fso.OpenTextFile(Fil.Path,1) BygStr = "" FirstLine = False Do until rFil.AtEndOfStream Readlinje = rFil.ReadLine If FirstLine = False Then If Left(Readlinje,7) = "Subject" Then BygStr = Readlinje & " " & Kundenr Else BygStr = Readlinje End If FirstLine = True Else If Left(Readlinje,7) = "Subject" Then BygStr = BygStr & vbCrLf & Readlinje & " " & Kundenr Else BygStr = BygStr & vbCrLf & Readlinje End If End If Loop rfil.Close
Set wFil = fso.OpenTextFile(Fil.Path,2) wFil.Write(BygStr) wFil.Close End If Next Next Next
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.