Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    4

    win xp batch cancellazione file vecchi n giorni

    Salve a tutti,

    Mi aiutate perfavore a creare un batch che mi dia la possibilità di cancellare i file TXT più vecchi di 3 giorni in una o più cartelle specifiche nel mio caso c:\log e c:\tempdb?

    Grazie ve ne sarei molto grato.

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Io ti consiglierei di utilizzare la powershell.

    In questo thread trovi la procedura per installarla

    http://forum.html.it/forum/newreply....ostid=12157627

    Poi non devi far altro che eseguire questo comando:

    codice:
    gci c:\tempdb, c:\log -rec | ? {-not $_.psiscontainer -and $_.creationtime -lt (get-date).adddays(-3) } | % {remove-item $_.fullname -whatif}
    che ciclerà in maniera ricorsiva entrambe le directory eliminando tutti i file la cui data di creazione è più vecchia di tre giorni rispetto alla data odierna.
    Una volta che ti sei accertato che i file che verrebbero rimossi sono quelli desiderati rimuovi lo switch -whatif e riesegui il comando.

    Se non ti piace la powershell e vuoi battagliare con una sintassi contorta puoi usare forfiles.
    Qui trovi un esempio.

    http://blog.stevienova.com/2007/02/2...mount-of-days/

    edit. Mi era sfuggita la limitazione ai file txt.

    codice:
    gci c:\tempdb, c:\log -rec -filter *.txt | ? {-not $_.psiscontainer -and $_.creationtime -lt (get-date).adddays(-3) } | % {remove-item $_.fullname -whatif}

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    4
    grazie 1000 per il consiglio. Il problema è che devo fare questo tipo di pulizia su 20 pc che eseguono un software. Sinceramente vorrei evitare di installare questo powershell su tutti i pc e per questo vorrei tentare la strada del batch.

    Comunque grazie vedo cosa posso fare.

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Originariamente inviato da morcas
    grazie 1000 per il consiglio. Il problema è che devo fare questo tipo di pulizia su 20 pc che eseguono un software. Sinceramente vorrei evitare di installare questo powershell su tutti i pc e per questo vorrei tentare la strada del batch.

    Comunque grazie vedo cosa posso fare.
    Non è necessario che installi la powershell su tutti i client. E' sufficiente che tu la abbia su un pc , che condivida le due cartelle e che abbia i permessi di scrittura sulle stesse.
    Per esempio condividi le cartelle tempdb e log lasciando loro lo stesso nome. Avrai quindi le share nel seguente formato

    \\nome_computer1\log
    \\nome_computer1\tempdb
    \\nome_computer2\log
    \\nome_computer2\tempdb
    e così via.

    Ti suggerisco di scaricare powershell analyzer
    http://www.powershellanalyzer.com/

    risulta infatti più comoda un'interfaccia grafica quando si scrivono comandi più lunghi di una sola riga.

    Ti serve adesso un semplice file di testo che conterrà l'elenco di tutti i pc.
    Esempio

    File elenco_pc.txt
    nome_computer1
    nome_computer2
    ...
    nome_computerN

    codice:
    $computers = get-Content "C:\Documents and Settings\...tuo_path...\elenco_pc.txt"
    foreach($computer in $computers) {
    gci \\$computer\tempdb, \\$computer\log -rec -filter *.txt | ? {$_.creationtime -lt (get-date).adddays(-3) } | % {remove-item $_.fullname -whatif}
    }
    Lo script tramite get-content (cui passerai l'esatto percorso del file di testo), recupera l'elenco di tutti i computer della tua rete, tramite un ciclo foreach li esamina uno per uno, andrà ad analizzare le due cartelle condivise su ciascuno di essi ed eliminerà tutti i file più vecchi di tre giorni.
    Come ti avevo già scritto, nel caso sia tutto come ti aspetti, rimuovi il -whatif.



  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    4
    ok grazie provo subito.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.