Hvis det er samme script som opretter mapperne + filerne - som også skriver i ini filen.
Så ville det nemmeste være at gemme kundenummeret som et variable og så indsætte.
Ellers så skal du til at formatere din mappe string.
TestStr = "S:\DocPost\Mail\BATCH\000333333\dhjk@gmail.com"
StrArr = Split(TestStr,"\")
Kundenr = StrArr(4)
MsgBox(kundenr)
TestStr = "S:\DocPost\Mail\BATCH\000333333\dhjk@gmail.com"
StrArr = Split(TestStr,"\")
Kundenr = CLng(StrArr(4))
MsgBox(kundenr)
Så er de foran stillede nuller også væk :)
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
Mange tak!
Men den kikker ikke i den sidst undermappe :-(
eks.
S:\Docpost\mail\batch\000500458\mail@mail.com
flytter jeg ini-filen til
S:\Docpost\mail\batch\000500458
tilføjes værdien godt nok.
Oh det beklager jeg :) så havde jeg lige misforstået noget ;) troede det var filen som hed mail@mail.com
Så skulle den kunne tage en subfolder mere ;)
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
SUPER!!!
Kan ikke lade være med at takke og bukke :-)
Lyder som om du fik det til at virke :-)
Her er et svar =)