PDA

Visualizza versione completa : Mi serve un file .bat molto particolare..


dublesse
10-10-2007, 18.16.37
salve raga; chi si ricorda i vecchi script dos dei file .bat? @Echo off :x:

Avrei bisogno della seguente cosa.. che può servire a tanti.. non so se si può realizzare con un software un file bat o uno script di Windows.. ditemi voi, ecco il problema:

- ho una cartella in cui vengono scaricati ogni giorno una decina di file .txt molto piccoli. vorrei che ad intervalli regolari (un mese?), partisse uno script che zippa i file più vecchi di una certa data con l'opzione "move", ossia li zippa e li fa fuori, per tenere un po' d'ordine. Il nome dell'archivio non conta. :inn:

Si può??? :mm: :fool:

:anger:

miciomao
10-10-2007, 20.43.38
per quel che mi risulta non puoi farlo da riga di comando con zip
a meno che tu non installi WinZip Command Line Support Add-on
a questo indirizzo http://www.winzip.com/prodpagecl.htm
funziona solo con l'ultima ver di winzip e devi possedere una copia registrata

puoi utilizzare rar se hai installato winrar
si trova nella stessa dir della sua installazione
è un tool potentissimo, e ti rimando alla guida chiamata rar.txt nella stessa dir

questo è un'esempio di come lo puoi utilizzare


for %%A in (C:\DirDeiTuoiTXT\*.txt) do C:\Programmi\WinRAR\rar.exe a -agDD-MMM-YY c:\DirDoveVuoiSalvare\Archivio_.rar %%A

if exist C:\DirDeiTuoiTXT\*.txt del /f C:\DirDeiTuoiTXT\*.txt

pause

il mio rar è nella dir C:\Programmi\WinRAR\rar.exe il tuo potrebbe essere in un'altra posizione nel caso individualo e cambiala nello script.

che succede?

elenca tutti i file *.txt nella tua dir li comprime in rar nella dir di destinazione utilizzando un formato data ovvero Archivio_10-Ott-07.rar (per esempio) e alla fine cancella tutti i txt di origine....


ciao :)

dublesse
11-10-2007, 09.52.16
Innanzitutto grazie! ho montato il winzip wzzip e ho scritto il seguene script, che sposta in archivio2007 tutti i TXT più vecchi di 14 giorni:

WZZIP -m -Td14 "percorso"\ARCHVIO2007.ZIP "percorso"\*.TXT

E sono già molto soddisfatto. :act: Ora mi servirebbe un ultimo favore:

- come si può fare che si autoesegua ogni 7 o 14 gg da solo.. senza che debba ricordarmelo? difficile vero? .. :timid:

grazie :jump: ;)

Thor
11-10-2007, 10.36.28
lo puoi mettere nelle operazioni pianificate di windows

protter
11-10-2007, 10.49.28
questa
if exist C:\DirDeiTuoiTXT\*.txt del /f C:\DirDeiTuoiTXT\*.txt

credo non sia corretta; non puoi porre un "if exist" con *.txt.
forse (non sono certo) dovrebbe funzionare con %a al posto dei due *.txt

al di là di questo, cancellare i file è una cosa evitabile; basterebbe usare l'opzione "move" dalla riga di comando.

per la data, credo sia abbastanza difficile da gestire dal batch.
potresti però risolvere "portando fuori" il problema, usando uno scheduler che faccia eseguire il batch a intervalli di tempo prestabiliti.