Avatar billede mhp_dk Nybegynder
31. oktober 2005 - 14:53 Der er 8 kommentarer og
1 løsning

VB script for oprettelse af filnavn i txt fil

Jeg har et dir med ca. 100 PDF filer, jeg vil gerne have et script som ligger disse 100 filnavne ned i en txt fil.

Jeg er ikke nogen haj til dette så hvis en kan sende scriptet ville det være herligt.
Avatar billede killerclown Nybegynder
31. oktober 2005 - 15:26 #1
Hey !
Dette script tjekker c:\test for pdf-filer, og skriver resultatet i c:\resultat.txt

Set FSO = CreateObject("Scripting.FileSystemObject")
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Const file1 = "c:\resultat.txt"
Set folder = FSO.getfolder("c:\test\")
    For Each filnavn In folder.files

        if ucase(Mid(filnavn.name, Len(filnavn.name)-2,3)) = "PDF" Then
        strinfo = strinfo & filnavn.name & VbCrLf
        End If
    Next

Set fi = FSO.OpenTextFile(file1, ForAppending, true)
fi.WriteLine (strinfo)           
Set fi = Nothing

/Killer
Avatar billede mhp_dk Nybegynder
31. oktober 2005 - 15:35 #2
Ja, men jeg glemte at skrive at sciptet skal køre igen og igen, og at det derfor et nødvendigt at den ikke tilføjer i txt filen, men laver en "ren" hver gang.
Avatar billede killerclown Nybegynder
31. oktober 2005 - 15:37 #3
Så kan du evt. bare slette filen hver gang scriptet køres :

Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.deletefile "c:\resultat.txt"
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Const file1 = "c:\resultat.txt"
Set folder = FSO.getfolder("c:\test\")
    For Each filnavn In folder.files
        if ucase(Mid(filnavn.name, Len(filnavn.name)-2,3)) = "PDF" Then
        strinfo = strinfo & filnavn.name & VbCrLf
        End If
    Next
Set fi = FSO.OpenTextFile(file1, ForAppending, true)
fi.WriteLine (strinfo)           
Set fi = Nothing

Alternativt kan det laves, så den danner en ny fil hver gang (?)

/Killer
Avatar billede mhp_dk Nybegynder
07. november 2005 - 12:11 #4
Tak for dit svar, det gav vejen til succes. :o)
Avatar billede killerclown Nybegynder
07. november 2005 - 12:17 #5
Velbekomme :o)
thx for points
Avatar billede mhp_dk Nybegynder
16. december 2005 - 08:26 #6
Hej igen killeclown

Måske du kunne hjælpe med dette, nu vil jeg nemlig gerne have diretorie navnet med i udtrækket
Altså sådan her:
Test;110631-01.pdf;
Test;110920-01.pdf;
Istedet for
110631-01.pdf;
110920-01.pdf;

Håber du eller en anden har tid til at hjælpe lidt mere !!
Avatar billede killerclown Nybegynder
16. december 2005 - 08:54 #7
Hey der !
Er det altid det samme bibliotek der skal undersøges ?
Avatar billede killerclown Nybegynder
16. december 2005 - 08:56 #8
HOV !
Det er forresten ligegyldigt :o)

Set FSO = CreateObject("Scripting.FileSystemObject")
FSO.deletefile "c:\resultat.txt"
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Const file1 = "c:\resultat.txt"
Set folder = FSO.getfolder("c:\test\")       
    For Each filnavn In folder.files
        if ucase(Mid(filnavn.name, Len(filnavn.name)-2,3)) = "PDF" Then
        strinfo = strinfo & folder.name & ";" & filnavn.name & VbCrLf
        End If
    Next
Set fi = FSO.OpenTextFile(file1, ForAppending, true)
fi.WriteLine (strinfo)           
Set fi = Nothing

/Killer
Avatar billede mhp_dk Nybegynder
16. december 2005 - 10:48 #9
Næsten...

Placering er C:\TEST og i TEST er det så TEST1 og TEST2 mapper men når jeg angiver C:\TEST får jeg kun de filnavne der er placeret her ikke dem i TEST1+TEST2
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester