Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di pienpi
    Registrato dal
    Oct 2005
    Messaggi
    36

    Modificare \ Incrementare data creazione file

    Ciao a tutti
    sto cercando un software che mi permetta di fare questo:
    1. selezionare file o cartelle
    2. impostare una data di creazione\modifica sul primo file
    3. impostare un valore standard di aumento
    4. far si che tutti i file successivi abbiano la data di creazione \ modifica maggiorata

    Verrebbe fuori una cosa del genere:
    Fila A , Data Creazione 01/01/2011
    File B , Data Creazione 02/01/2011
    Fila C , Data Creazione 03/01/2011
    .....


    So che il programma AttributeMagic ha questa funzione , ma purtroppo si tratta di un software a pagamento.
    Vi sarei quindi grato se sapreste consigliarmi un software con queste caratteristiche ma gratuito.

    grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Ti basta una riga di codice in powershell. Se hai windows 7 è già integrata, altrimenti la scarichi gratuitamente in rete.

    codice:
    gci "c:\tua_cartella" | ? {-not $_.psiscontainer} | sort -property name | foreach-object -begin {$i=0;$data="01/01/2011"} -process {$_.creationtime = [datetime]::ParseExact($data, "dd/MM/yyyy", $null).adddays($i);$i++}
    Per modificare la data di ultima modifica sostituisci $_.creationtime con $_.lastwritetime.

    Volendo è un attimo trasformare il codice in una funzioncina a cui passerai percorso, data di partenza e numero giorni di incremento.

  3. #3
    Utente di HTML.it L'avatar di pienpi
    Registrato dal
    Oct 2005
    Messaggi
    36
    Grazie per la dritta!!!!
    Ti chiedo qualche chiarimento:

    1. ho windows XP, posso comunque installare il programma powershell di cui parli?
    2. come faccio ad impostare il valore di aumento che deve avere la data in ogni file?
    3. se nella cartelle ci sono sottocartelle, verranno modificate anche loro e i file che contengono?

    ancora grazie per la disponibilità

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    1) Se hai windows xp puoi scaricare la powershell a questo indirizzo

    http://support.microsoft.com/kb/968930

    2) Appena mi è possibile ti scrivo la funzioncina. Per il momento, se vuoi incrementare su ogni file di X giorni devi fare una banale modifica allo script e cambiare $i++, in $i+=x

    codice:
    gci "c:\tua_cartella" | ? {-not $_.psiscontainer} | sort -property name | foreach-object -begin {$i=0;$data="01/01/2011"} -process {$_.creationtime = [datetime]::ParseExact($data, "dd/MM/yyyy", $null).adddays($i);$i+=3}
    3) Certo puoi applicare le modifiche anche nelle sottocartelle. Per far ciò devi aggiungere lo switch -rec a inizio script

    codice:
    gci "c:\tua_cartella" -rec  | ? {-not $_.psiscontainer} | ....
    La porzione di codice

    ? {-not $_.psiscontainer}

    fa si che vengano ciclati ricorsivamente solo i file ed escluse le cartelle dall'aggiornamento della data. Se vuoi cambiare data anche a loro devi rimuovere quest'ultima parte di codice.

  5. #5
    Utente di HTML.it L'avatar di pienpi
    Registrato dal
    Oct 2005
    Messaggi
    36
    Ciao!
    Grazie alle tue dritte (ti sono debitore) sono riusciti nell'intento!!!!

    Ho creato questi 4 script per modificare data creazione e data ultima-modifica di file e cartelle

    codice:
    MODIFICA DATA ULTIMA MODIFICA CARTELLA
    gci "M:\Musica" -rec   | ? {-not $_.psiscontainer} | sort -property name | foreach-object -begin {$i=0;$data="01/01/2000"} -process {$_.lastwritetime = [datetime]::ParseExact($data, "dd/MM/yyyy", $null).adddays($i);$i+=2} 
    
    MODIFICA DATA ULTIMA MODIFICA TUTTI I FILE NELLE SOTTOCARTELLE
    gci "M:\Musica" -rec  | sort -property name | foreach-object -begin {$i=0;$data="01/01/2000"} -process {$_.lastwritetime = [datetime]::ParseExact($data, "dd/MM/yyyy", $null).adddays($i);$i+=2} 
    
    
    MODIFICA DATA CREAZIONE CARTELLA
    gci "M:\Musica" -rec   | ? {-not $_.psiscontainer} | sort -property name | foreach-object -begin {$i=0;$data="01/01/2000"} -process {$_.creationtime = [datetime]::ParseExact($data, "dd/MM/yyyy", $null).adddays($i);$i+=2} 
    
    MODIFICA DATA CREAZIONE TUTTI I FILE NELLE SOTTOCARTELLE
    gci "M:\Musica" -rec  | sort -property name | foreach-object -begin {$i=0;$data="01/01/2000"} -process {$_.creationtime = [datetime]::ParseExact($data, "dd/MM/yyyy", $null).adddays($i);$i+=2}
    Una sola cosa mi rimane da chiederti:
    esiste un modo per modificare con unico script tutte le cartelle e tutti i file?

    ciao e grazie mille!!!!!

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Come ti accennavo lo switch -rec abilita la ricerca in tutte le sottocartelle, cosa che tu fai in tutti e quattro gli script.

    Quindi, se vuoi modificare contemporaneamente data di creazione e data di modifica ai soli file (assegnando a entrambe la stessa data), lo script diventa

    codice:
    gci "m:\musica" -rec  | ? {-not $_.psiscontainer} | sort -property name | 
        foreach-object -begin {$i=0;$data="01/01/2000"} -process {$_.creationtime = [datetime]::ParseExact($data, "dd/MM/yyyy", $null).adddays($i);
                                                                  $_.lastwritetime = [datetime]::ParseExact($data, "dd/MM/yyyy", $null).adddays($i);
                                                                  $i+=2}
    Se vuoi modificare anche la data delle cartelle rimuovi dal codice

    codice:
     ? {-not $_.psiscontainer}
    tramite il quale escludi i "contenitori", e lo script diventa

    codice:
    gci "m:\musica" -rec  | sort -property name | 
        foreach-object -begin {$i=0;$data="01/01/2000"} -process {$_.creationtime = [datetime]::ParseExact($data, "dd/MM/yyyy", $null).adddays($i);
                                                                  $_.lastwritetime = [datetime]::ParseExact($data, "dd/MM/yyyy", $null).adddays($i);
                                                                  $i+=2}

  7. #7
    Utente di HTML.it L'avatar di pienpi
    Registrato dal
    Oct 2005
    Messaggi
    36
    Grazie mille Nicola, sei stato chiarissimo e gentilissimo!!!
    Mi restano 2 domande da farti (le ultime, prometto ):

    1. la stringa "sort -property name" significa che lo script prima ordina alfabeticamente i file e poi effettua la modifica sulle date seguendo l'ordine alfabetico? Se no, come posso fare per cambiare le date seguendo l'ordine alfabetico dei file? (il mio bisogno infatti è quello di far coincidere l'ordine cronologico delle date con l'ordine alfabetico dei file - purtroppo ho un autoradio handicappato....)

    2. se volessi cambiare anche la data di "ultimo accesso" quale è il nome? "$_.lastaccesstime"?

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Per quanto riguarda la seconda domanda hai fatto centro. La proprietà si chiama lastaccesstime e quindi la puoi modificare sempre allo stesso modo.

    In merito alla prima è esattamente così. Il comando sort ordina gli oggetti in base alle proprietà che gli vengono passate, in questo caso ordina i file in base al nome in senso crescente e rispetto a tale ordine esegue le successive operazioni.

    Anche io ho un'autoradio come il tuo ma il problema si pone solo se metto gli mp3 in un'unica cartella. Se sono suddivisi in sottocartelle viene rispettato l'ordine alfabetico delle cartelle in fase di lettura.

  9. #9
    Utente di HTML.it L'avatar di pienpi
    Registrato dal
    Oct 2005
    Messaggi
    36
    Il mio autoradio purtroppo ordina tutto (file e cartelle) in base alla data (francamente non ho capito bene quale delle 3... ).
    E' da un mese che sto impazzendo per trovare un modo di far coincidere ordine cronologico e ordine alfabetico...
    Non puoi immaginare quanto ti sia grato per le delucidazioni che mi hai fornito in questo 3ad!!!!

    G R A Z I E 1 0 0 0



  10. #10
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Prego. Dovessi avere altri problemi torna pure a chiedere.

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.