Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    752

    [VBS] Ricerca e rinomina Files in Folder

    Ciao a tutti.
    So che come argomento e' banale e ipertrattato ma nonostante abbia cercato a lungo nn ho trovato nulla che mi aiuti.
    Ho una cartella con centinaia di file e dovrei cercare una decina di file da rinominare.
    Il mio file ha un nome tipo : pippo ciao ciao_A1.txt
    pippo ciao ciao_A2.txt
    pippo ciao ciao_A3.txt
    etc etc
    e dovrei rinominarli come:
    pippo ciao ciao_rr1.txt
    pippo ciao ciao_rr2.txt
    pippo ciao ciao_rr3.txt
    etc etc.
    Sto creando uno VBS che rinomini il file dando il nome come argomento.
    Ho creato questo per risolvere il problema degli spazi tra l'argomento:
    For I = 0 to objArgs.Count - 1
    Name(I) = objArgs(I)
    FileName=FileName & " " & Name(I)
    Next

    e funziona.
    Ora non so come risolvere il problema di cercare tutti i file pippo all'interno della cartella x rinominarli.

    Grazie
    Comunque Grazie

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    752
    Grazie gibra
    Ma questi rinominano tutti i file mentre io dovrei rinominare solo i file passati con l'argomento.
    Ho scritto questo ma non funziona molto bene:

    Dim ArgObj, var,NameFile,Name(300),FileName
    Dim fso, fldr, f
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set fldr = fso.GetFolder("MioFolder")
    Num = 0

    'Input argomento + controllo spazi nome
    Set objArgs = WScript.Arguments
    For I = 0 to objArgs.Count - 1
    ' WScript.Echo objArgs(I)
    Name(I) = objArgs(I)
    FileName=FileName & " " & Name(I)
    Next

    ' NomeFile senza Path
    TextLen = Len(FileName)
    lngPos = InstrRev(FileName, "\")
    FileName = Right (FileName, ( TextLen - lngPos))

    ' ---------------------------------------------------------------------------------
    For Each f In fldr.Files

    If f.Name = Left(FileName,Len(FileName)-5)& Num & ".wav" Then
    f.Name = Replace(FileName, "A" & Num, "A" & num+10)
    Num = Num +1
    End If

    Next

    Set fso = Nothing
    Set fldr = Nothing
    Set f = Nothing
    Comunque Grazie

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da fosforo
    Ho scritto questo ma non funziona molto bene:
    Che facciamo:
    - indoviniamo dove e come non funziona molto bene?
    - oppure ce lo sveli tu?


  5. #5
    Utente di HTML.it L'avatar di Vinsent
    Registrato dal
    May 2011
    Messaggi
    314
    Mi hai fatto venire in mente una cosa da aggiungere al mio programma, per ora ho abbozzato questo:
    codice:
            Dim testo_vecchio As String = TextBox_vecchio_testo.Text
            Dim testo_nuovo As String = TextBox_nuovo_testo.Text
            Dim testo_definitivo As String = ""
            Dim cartella As New IO.DirectoryInfo(percorso)
            Dim file_ As IO.FileInfo() = cartella.GetFiles
            Dim nome_file As IO.FileInfo
            For Each nome_file In file_
                If nome_file.ToString.Contains(testo_vecchio) = True Then
                    testo_definitivo = nome_file.ToString.Replace(testo_vecchio, testo_nuovo)
                    MsgBox("Vecchio:   " & nome_file.ToString & vbCrLf & _
                       "Nuovo:   " & testo_definitivo)
                End If
            Next
    Vedi tu se ti può servire.
    ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.