Avatar billede x4all_dk Nybegynder
28. november 2006 - 11:50 Der er 5 kommentarer og
1 løsning

omdøb filer i dir

Hvem kan lave et script som løber alle subdirs (rekursivt) igennem og omdøber filer så de indeholder dir-name.

f.eks.

test/
a.txt
b.txt

bliver til:
test/
test - a.txt
test - b.txt

osv..
Avatar billede x4all_dk Nybegynder
08. februar 2007 - 11:54 #1
Er det ingen som kan klare dette script ?
Avatar billede morten_leth Nybegynder
04. marts 2007 - 20:23 #2
Option Explicit

Private mlngfileCount
Call Command1_Click

Private Sub Command1_Click()
    Dim strPath, strFind
    Dim objFSO
    Dim objFolder

    strPath = InputBox("Enter startpath:", , "C:\scripts")
   
    mlngfileCount = 0
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFSO.GetFolder(strPath)

    Call ReplaceFileNameInFolder(objFSO, objFolder, strFind)
    MsgBox "Find and change finished!" & vbCrLf & "Changed " & mlngfileCount, vbInformation
End Sub

Sub ReplaceFileNameInFolder(objFSO, objFolder, strFind)
    Dim objDocFile
    Dim objSubFolder
    Dim objDoc
    Dim objHyperlink
    Dim blnChanged
    Dim strOldAddress
    Dim strNewAddress
    Dim StrFolder
   
    For Each objDocFile In objFolder.Files
        If UCase(objFSO.GetExtensionName(objDocFile.Path)) = "TXT" Then
            'renames the file
            'strFolder = Len(objDocFile.path) - Len(objDocFile.name)
            'wscript.echo  left(objDocFile.Path, strFolder) & objDocFile.Name
            wscript.echo objDocFile.Path & vbcrlf & objDocFile.ParentFolder & "\" & objFolder.name & " - " & objDocFile.Name
            objFSO.MoveFile objDocFile.Path, objDocFile.ParentFolder & "\" & objFolder.name & " - " & objDocFile.Name
            mlngfileCount = mlngFileCount + 1
        End If
    Next
   
    For Each objSubFolder In objFolder.SubFolders
        Call ReplaceFileNameInFolder(objFSO, objSubFolder, strFind)
    Next
End Sub

Jeg håber det fungere som du gerne vil have det til....
Hvis ikke skal jeg nok hjælpe med at rette til så den fungere som du ønsker...
Avatar billede morten_leth Nybegynder
08. marts 2007 - 13:04 #3
Var det noget du kunne bruge eller var det helt ubrugeligt ???
Avatar billede x4all_dk Nybegynder
15. maj 2007 - 12:03 #4
Tak morten, jeg har først set dit svar nu.

Det er næsten korrekt, følgende håber jeg du kan ændre:
1) den skal tage ALLE filer i ALLE sub dirs, og rename.

Kan du klare det ?
Avatar billede morten_leth Nybegynder
16. maj 2007 - 09:55 #5
He he det burde da være det mindste (udemiddelbart synes jeg du selv lige skulle prøve at se om det virker for jeg ikke tid til at teste det...)
Men hvis du sætter ' omkring if sætningen så får du alle...
ergo sådan her:
'If UCase(objFSO.GetExtensionName(objDocFile.Path)) = "TXT" Then
'End If

Prøv det...
Avatar billede x4all_dk Nybegynder
29. april 2008 - 10:19 #6
jeg kom ikke videre med det, men du for point morten_leth.
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

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