Avatar billede Slettet bruger
15. marts 2004 - 09:43 Der er 8 kommentarer og
1 løsning

Masse-omdøbing af filer vha bat-script

Jeg har en del lydfiler på min computer som fx hedder 01-musiknummer.wma, 05-Musiknummer.wma og 12-musiknummer.mp3.
Hvordan kan jeg med et batch-script lave alle filnavnene om, så der på hver side af bindestregen (-) kommer et mellemrum, så filer fx kommer til at hedde: 05 - Musiknummer.wma og 12 - Musiknummer.mp3?

Nogle idéer?
Avatar billede Slettet bruger
15. marts 2004 - 09:44 #1
Og det skal jo så lige siges at jeg snakker om 10-20 filer ad gangen...
Avatar billede dk_akj Nybegynder
15. marts 2004 - 09:54 #2
ssFDESKTOP = &H0 
ssFFLAGS  = &H1               
ssFTEXT    = "Omdøb filer i folder"

sSelectedPath = SelectFolder (ssFDESKTOP, ssFTEXT, ssFFLAGS)
If Len(sSelectedPath)=0 Then
    Wscript.quit
Else
    set fso=createobject("scripting.filesystemobject")
    thisfolder=sSelectedPath


    for each f in fso.getfolder(thisfolder).files

        pos = instr(f.name,"-")
        if pos > 0 then
            newname = left(f.name,pos - 1)
            newname = newname & " - "
            newname = newname & right(f.name, len(f.name) - pos)
            f.name = newname
            i = i + 1
        end if
    next
    msgbox i & " filer omdøbt."
end if

Function SelectFolder(ssFROOT, ssFASK, ssFFLAGS)
  Set oSHA = CreateObject("Shell.Application")
  Set oSF = oSHA.BrowseForFolder(0,ssFASK,ssFFLAGS,ssFROOT)
  If Instr(TypeName(oSF),"Folder")<> 1 Then Exit Function
  For Each oItem in oSF.ParentFolder.Items
    If oItem.Name = oSF.title Then
      SelectFolder = oItem.path
      Exit Function
    End If
Next
SelectFolder = oSF.title
End Function


//akj
Avatar billede Slettet bruger
15. marts 2004 - 10:19 #3
dk_akj > det virker ikke...
Avatar billede dk_akj Nybegynder
15. marts 2004 - 10:33 #4
Det ville squ være en stor hjælp hvis du gad og fortælle hvad der er galt  !!

//akj
Avatar billede Slettet bruger
15. marts 2004 - 10:40 #5
det ved jeg ikke... jeg har både testet det i win98 og winxp...

sådan ser det ud...

D:\Ny mappe>end if
Forkert kommando eller filnavn

D:\Ny mappe>
D:\Ny mappe>Function SelectFolder(ssFROOT, ssFASK, ssFFLAGS)
Forkert kommando eller filnavn

D:\Ny mappe>  Set oSHA = CreateObject("Shell.Application")

D:\Ny mappe>  Set oSF = oSHA.BrowseForFolder(0,ssFASK,ssFFLAGS,ssFROOT)

D:\Ny mappe>  If Instr(TypeName(oSF),"Folder")<> 1 Then Exit Function
Filen blev ikke fundet

D:\Ny mappe>  For Each oItem in oSF.ParentFolder.Items
Syntaksfejl

D:\Ny mappe>    If oItem.Name = oSF.title Then
Syntaksfejl

D:\Ny mappe>      SelectFolder = oItem.path
Forkert kommando eller filnavn

D:\Ny mappe>      Exit Function
Avatar billede Slettet bruger
15. marts 2004 - 10:42 #6
plus: der bliver lavet en fil der hedder 0! fylder 0 byte og har ingen endelse på filnavnet!
Avatar billede dk_akj Nybegynder
15. marts 2004 - 10:43 #7
Øhh.. du kører det fra en dosprompt ??
Jeg har lavet det i vbs :-)

Du skal gemme koden som fx. Omdøb.vbs

//akj
Avatar billede Slettet bruger
15. marts 2004 - 10:49 #8
doooohhhh!!!!!! hvad fanden har jeg gang i!???? syntes da også at kommandoerne så lidt anderledes ud... hva ved jeg  ;) ;)... hmm hvor dum har man lov til at være !!!

Nå men nu virker perfekt det selvfølgelig!! Lige hvad jeg havde brug for! 1.000 Tak skal du ha... point til dig!
Avatar billede dk_akj Nybegynder
15. marts 2004 - 10:51 #9
Selvtak :-)

//akj
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