Precedente :: Successivo |
Autore |
Messaggio |
francescodue Dio minore

Registrato: 26/09/08 11:00 Messaggi: 565
|
Inviato: 26 Set 2008 11:13 Oggetto: * Zippare file distinti e mantenerli distinti |
|
|
Salve a tutti.
Ho fatto una ricerca sui forum ma non ho trovato quello che cercavo.
Spero di essere nel forum giusto.
Il mio problema è questo: devo comprimere una serie di file, tutti dello stesso tipo, ma senza compattarli in un unico archivio.
L'ideale sarebbe poi cancellare i file originali in automatico.
Ho provato il comando "compact", ma ovviamente non comprime come uno zip e ho dei dubbi che spostando i file mantenga lo stato.
Sapete se esiste qualcosa?
Mi andrebbe bene anche una stringa da riga di comando o una procedura da seguire: i file sono molti e divisi in parecchie cartelle e sottocartelle.
A proposito: il sistema operativo è Windows XP.
Vi ringrazio in anticipo per l'attenzione. |
|
Top |
|
 |
chemicalbit Dio maturo


Registrato: 01/04/05 18:59 Messaggi: 18597 Residenza: Milano
|
Inviato: 26 Set 2008 11:58 Oggetto: Re: Zippare file distinti e mantenerli distinti |
|
|
francescodue ha scritto: | Salve a tutti. | Ciao , benvenuto/a !
(Se vuoi, fai un salto in questa discussione a presentarti agli utenti del forum.)
francescodue ha scritto: | Ho fatto una ricerca sui forum ma non ho trovato quello che cercavo.
Spero di essere nel forum giusto. | Beh sì, il forum è giusto, non c'è dubbio.
Una discussione sui programmi per comprimere i file è questa,
ma non tratta specificatamente la questione posta da te.
francescodue ha scritto: | Il mio problema è questo: devo comprimere una serie di file, tutti dello stesso tipo, ma senza compattarli in un unico archivio. | Quindi vuoi creare tanti file ZIP (o formato simile), ciascuno con un solo dei file che vuoi comprimere?
I nomali programmi di compressione (vedi discussione che linkato poco sopra) possono ovviamente creare file compressi contenenti un solo file.
francescodue ha scritto: | 'ideale sarebbe poi cancellare i file originali in automatico. | Anche questo può essere fatto da un normale fiel di compressione.
(Per la cronaca il programma Unix "compress" e il programma GNU "gzip", se ben ricordo, agiscono proprio in questo modo: comprimono un solo file (rispettivamente .Z e .gz), e non lasicano il file originario, in pratica lo trasformano in un file compresso
-solitamente se si vogliono comprimenre assieme più file, prima si crea un tar (.tar) che li contiene tutti, e poi si comprime quest'ultimo (.tar.Z o .tar.gz) )
francescodue ha scritto: | Sapete se esiste qualcosa?
Mi andrebbe bene anche una stringa da riga di comando o una procedura da seguire: i file sono molti e divisi in parecchie cartelle e sottocartelle.
A proposito: il sistema operativo è Windows XP. | Non so se esista un programma che faccia in automatico tutto questo,
La prima soluzione che mi viene in mente è creare un file batch (.BAT) con un "programma" che lanci per ogni file da comprimere il programma di compressione (e poi eventualmente elimini il file originario, se non lo fai eliminare in automatico dal programma).
Ovviamente il programma che usi deve essere lanciabile da riga di comando, passandogli gli opportuni parametri.
I file da comprimere sono sempre gli stessi?
Sono tutti quelli in una certa directory (cartella)? (In tal caso puoi usare il comando for del linguaggio batch)
Le cartelle sono sempre le stesse? |
|
Top |
|
 |
GrayWolf Dio maturo


Registrato: 03/07/05 17:24 Messaggi: 2325 Residenza: ... come frontiera i confini del mondo...
|
Inviato: 26 Set 2008 12:14 Oggetto: |
|
|
se guardi qui
trovi un compressore da linea comando o da procedura batch
[.bat o .cmd] che fa quello che ti serve.
L'unico inconveniente è doversi redigere la lista dei file a mano.
Però...
con una piccola procedura in vbscript si potrebbe ovviare alla farraginosità e al tedio di doversi compilare tutta la lista.
Se ti dovesse servire la procedurina siamo qua . |
|
Top |
|
 |
chemicalbit Dio maturo


Registrato: 01/04/05 18:59 Messaggi: 18597 Residenza: Milano
|
Inviato: 26 Set 2008 12:55 Oggetto: |
|
|
GrayWolf ha scritto: | se guardi qui
trovi un compressore da linea comando o da procedura batch
[.bat o .cmd] che fa quello che ti serve. | Non ho capit la differenza da un "normale" compressore
(sarà che ho guardato un po' di corsa ....)
GrayWolf ha scritto: | L'unico inconveniente è doversi redigere la lista dei file a mano.
Però...
con una piccola procedura in vbscript si potrebbe ovviare alla farraginosità e al tedio di doversi compilare tutta la lista. | E usare FOR dei file batch?
(certo dipende da quali file deve comprimere, es. tutti quelli di una cartella). |
|
Top |
|
 |
GrayWolf Dio maturo


Registrato: 03/07/05 17:24 Messaggi: 2325 Residenza: ... come frontiera i confini del mondo...
|
Inviato: 26 Set 2008 13:17 Oggetto: |
|
|
chemicalbit ha scritto: | GrayWolf ha scritto: | se guardi qui
trovi un compressore da linea comando o da procedura batch
[.bat o .cmd] che fa quello che ti serve. | Non ho capit la differenza da un "normale" compressore
(sarà che ho guardato un po' di corsa ....) |
Le contenute dimensioni dell'eseguibile e
Citazione: |
The IZArc Command Line Add-On is set of advanced command line
tools for Windows. They can be called from batch (.bat) files,
embeded in scripting languages or executed from other applications.
|
non li ho provati tutti ma non so quanti dei compressori che girano sotto windows abbiano la stessa possibilità e pletora di comandi da linea comando
chemicalbit ha scritto: |
GrayWolf ha scritto: | L'unico inconveniente è doversi redigere la lista dei file a mano.
Però...
con una piccola procedura in vbscript si potrebbe ovviare alla farraginosità e al tedio di doversi compilare tutta la lista. | E usare FOR dei file batch?
(certo dipende da quali file deve comprimere, es. tutti quelli di una cartella). |
Vero con un for è possibile ottenere lo stesso risultato, ma difficile da personalizzare: i comandi batch non sono così potenti [a quanto mi ricordi] poi certo, è possibile tutto.
La procedura in vbscript che ho in mente dovrebbe:
.1 accettare come parametro le cartelle contenenti i files da trattare
.2 presentare la lista in notepad per dare la possibilità di escludere alcuni file
.3 leggere la lista corretta e spostare ogni file della lista nella cartella di destinazione. |
|
Top |
|
 |
francescodue Dio minore

Registrato: 26/09/08 11:00 Messaggi: 565
|
Inviato: 26 Set 2008 14:42 Oggetto: |
|
|
Vi ringrazio per la tempestività.
Ho letto i topic che mi avete indicato.
Vi spiego un po' meglio la mia situazione.
Mi è stato passato un archivio di qualche GB diviso in centinaia tra cartelle e sottocartelle.
Per rimpicciolirlo e renderlo più gestibile per i backup ho pensato di comprimere i file più ingombranti.
Quindi devo comprimere i file IGES (ma vorrei una procedura adattabile ai diversi formati) lasciandoli distinti, in modo che se cerco un file particolare lo vedo al suo posto con il suo nome.
Ho pensato di usare la riga di comando perché la conosco poco mentre di vbscript non so niente.
Avevo pensato una cosa del genere:
cerca i file nella cartella x *.igs -> prendi il primo e comprimilo mantenendo il suo nome -> quando hai finito elimina l'originale -> ripeti con il successivo -> quando non ne trovi altri passa alla sottocartella -> continua per tutte -> quando hai processato tutti i file esci.
Nell'ipotetico caso che sia fattibile (o anche meglio di così) avrei bisogno di qualche indicazione su come scrivere il codice.
Il comando FOR di cui parlate non mi dice niente.
Si vede tanto che sono un principiante?
Ancora grazie. |
|
Top |
|
 |
chemicalbit Dio maturo


Registrato: 01/04/05 18:59 Messaggi: 18597 Residenza: Milano
|
Inviato: 26 Set 2008 16:22 Oggetto: |
|
|
con FOR puoi ad es. dire di ripetere un comando per ciascun file *.igs di una directory.
francescodue ha scritto: | Mi è stato passato un archivio di qualche GB diviso in centinaia tra cartelle e sottocartelle. | un archivio, intendi un fil compresso contenente tanti file e cartelle?
francescodue ha scritto: | Per rimpicciolirlo e renderlo più gestibile per i backup ho pensato di comprimere i file più ingombranti. | Di che dimensione voresti che fosse ogni parte, per gestire bene i back up? (come li fai? Su CD? su DVD?)
p.s. che programmi di compressione usi di solito? |
|
Top |
|
 |
francescodue Dio minore

Registrato: 26/09/08 11:00 Messaggi: 565
|
Inviato: 26 Set 2008 16:49 Oggetto: |
|
|
L'archivio di cui parlo è un disco di lavoro. Quindi i file, le cartelle e le sottocartelle sono state strutturate dagli utenti man mano che lavoravano.
E visto che lo usano tuttora, non posso fargli sparire i file: finché trovano un file con lo stesso nome riescono a capire di dover usare quel file.
Per i backup di solito uso un DAT con il programma Tapeware.
Ma una volta l'anno, o sei mesi se vedo che c'è parecchio lavoro, travaso tutto su DVD suddividendo i dati in base allo spazio e alla gerarchia delle cartelle.
Solo che non ha senso sprecare un DVD per file IGES quando posso comprimerli in pochissimo spazio.
Personalmente uso 7-zip.
Puoi farmi un esempio del comando FOR di cui parli?
Se riuscissi a capire come utilizzare 7-zip da riga di comando magari riuscirei ad utilizzare questo comando. Qualche idea?
Mille grazie intanto. |
|
Top |
|
 |
chemicalbit Dio maturo


Registrato: 01/04/05 18:59 Messaggi: 18597 Residenza: Milano
|
Inviato: 26 Set 2008 16:59 Oggetto: |
|
|
Ma quindi quell'"archivio" è tuttora in uso? |
|
Top |
|
 |
francescodue Dio minore

Registrato: 26/09/08 11:00 Messaggi: 565
|
Inviato: 26 Set 2008 17:31 Oggetto: |
|
|
Una piccola parte di questo archivio viene utilizzato normalmente, il resto, la maggior parte, serve solo da consultazione e raramente.
In pratica, semplificando, è diviso in tre sottocartelle:
la prima con i dati di uso comune, la seconda con i dati da compattare e l'ultima in cui c'è un fritto misto e che devo spulciare per capire cosa c'è dentro e cosa farne.
La seconda parte è quella che mi interessa. Normalmente non viene usata, ma per sicurezza invierò comunicazione di non accedere finché non ho concluso, oppure farò l'operazione durante la pausa o la notte.
Finché non trovo il modo di procedere non ho pensato a questo particolare.
Anche perché, trattandosi di file IGES, verrebbero cercati solo dagli impiegati tecnici, e spero di potermi fidare. |
|
Top |
|
 |
GrayWolf Dio maturo


Registrato: 03/07/05 17:24 Messaggi: 2325 Residenza: ... come frontiera i confini del mondo...
|
Inviato: 26 Set 2008 19:28 Oggetto: |
|
|
francescodue ha scritto: | ...
Personalmente uso 7-zip.
Puoi farmi un esempio del comando FOR di cui parli?
Se riuscissi a capire come utilizzare 7-zip da riga di comando magari riuscirei ad utilizzare questo comando. Qualche idea?
Mille grazie intanto. |
Ho esaminato l'help di 7-zip e gli argomenti della linea comando sono veramente tanti [molti di più di quanti ne immaginassi]
ma non ho trovato un'opzione che mi permetta di "muovere" il file,
cioè di far sparire l'originale dopo averlo compresso [cosa che obbliga alla sua cancellazione manuale].
Lasciami un po' di tempo e vedo di mettere in piedi il vbscript di cui parlavo nel post precedente. |
|
Top |
|
 |
chemicalbit Dio maturo


Registrato: 01/04/05 18:59 Messaggi: 18597 Residenza: Milano
|
Inviato: 26 Set 2008 21:09 Oggetto: |
|
|
muovere nel senso di "cancellare l'originale dopo averlo compresso"? |
|
Top |
|
 |
ioSOLOio Amministratore


Registrato: 12/09/03 19:01 Messaggi: 16342 Residenza: in un sacco di...acqua
|
Inviato: 27 Set 2008 13:13 Oggetto: |
|
|
chemicalbit ha scritto: | muovere nel senso di "cancellare l'originale dopo averlo compresso"? |
oh yess..
GrayWolf ha scritto: |
ma non ho trovato un'opzione che mi permetta di "muovere" il file,
cioè di far sparire l'originale dopo averlo compresso [cosa che obbliga alla sua cancellazione manuale]. |
|
|
Top |
|
 |
ioSOLOio Amministratore


Registrato: 12/09/03 19:01 Messaggi: 16342 Residenza: in un sacco di...acqua
|
Inviato: 27 Set 2008 13:16 Oggetto: |
|
|
francescodue ha scritto: | Normalmente non viene usata, ma per sicurezza invierò comunicazione di non accedere finché non ho concluso, oppure farò l'operazione durante la pausa o la notte.
Finché non trovo il modo di procedere non ho pensato a questo particolare.
Anche perché, trattandosi di file IGES, verrebbero cercati solo dagli impiegati tecnici, e spero di potermi fidare. |
no, non fidarti....
Quando l'impiegato, il laureato, l'ingegnere o quello che ti pare è prima di tutto un utente, non ti fidare.
Fidati
Se il Pc in questione resta acceso anche fuori orario di lavoro e la notte, meglio impostare una operazione pianificata in quelle ore. |
|
Top |
|
 |
chemicalbit Dio maturo


Registrato: 01/04/05 18:59 Messaggi: 18597 Residenza: Milano
|
Inviato: 28 Set 2008 00:03 Oggetto: |
|
|
francescodue ha scritto: | Puoi farmi un esempio del comando FOR di cui parli? | Ad es. se hai dei file .bmp in c:\windows
e hai una cartella c:\prova
apri il prompt dei comandi e scrivi i seguenti comandi (alla fine di ogni riga, quindi di ognicomando, dai invio) Codice: | cd c:\windows
for %f in (*.bmp) do copy %f c:\prova |
Alla varibile %f verrà assegnanto il nome di un file, che rientri in *.bmp , e comando copy %f c:\prova verrà eseguito sostituendo a %f tale nome di file. Poi verrà assegnato un altro nome di file e così via.
Nota: se lo usi in un file batch devi usare due % , quindi %%f.
(mai capito il perché questa differenza....)
Ad es. se crei un file prova.bat così Codice: | @echo off
md c:\prova
cd c:\windows
for %%f in (*.bmp) do copy %%f c:\prova |
Vedo ora (andando al prompt dei coamndi e scrivendo for /? ) che ha anche tante opzioni (che io non conosco - io conosco il for del dos 5 e dos 6 - ) ad es. per gestire la ricorsione nelle subdirecotry. |
|
Top |
|
 |
francescodue Dio minore

Registrato: 26/09/08 11:00 Messaggi: 565
|
Inviato: 29 Set 2008 09:04 Oggetto: |
|
|
Grazie a tutti per i consigli e suggerimenti.
A chemicalbit = ho rovato ad utilizzare il codice che mi hai mostrato, ma non riesco a farlo funzionare.
Il file bat devo metterlo nella cartella da cui voglio estrarre i dati?
E la cartella di destinazione la crea da solo?
Ho provato ad utilizzarlo, ma mi crea un solo file senza estensione nella stessa cartella.
Per quanto riguarda gli altri utenti, visto che il pc resta acceso anche fuori orario seguirò il tuo consiglio.
Però mi serve aiuto anche in questo: utilizzo una funzione pianificata per lanciare il bat o integro in questo il periodo di attivazione? |
|
Top |
|
 |
chemicalbit Dio maturo


Registrato: 01/04/05 18:59 Messaggi: 18597 Residenza: Milano
|
Inviato: 29 Set 2008 09:36 Oggetto: |
|
|
francescodue ha scritto: | A chemicalbit = ho rovato ad utilizzare il codice che mi hai mostrato, ma non riesco a farlo funzionare. | Beh, era solo un esempio.
francescodue ha scritto: | Il file bat devo metterlo nella cartella da cui voglio estrarre i dati? | "Estrarre i dati", intendi copiare alcuni file dalla directory c:\windows (quello fa quell'esempio)?
No, non serve spostarsi prima nella directory perché col comando "cd" (change directory) si sposta da solo.
(Per lanciare il file bat la cosa più facile è spostarsi prima inmodo da essere nella directory che contiene quel file batch. Così per lanciarlo basterà scrivere il nome del file batch e premere invio.
Ah, devi essere nel disco c: -si potrebbe migliorare, l'esempio l'ho buttato lì, voleva essere solo un esempio del ciclo for (che usa il comando copy , che -spero si capisse- è il comando per copiare un file, in questo caso da una directory all'altra)
francescodue ha scritto: | E la cartella di destinazione la crea da solo? | L'esempio col file batch sì,
c'è una riga con uncomando md (make directory, crea directory)
(anzi, tenta di crearla anche se esiste già, e pertanto in tal darà un messaggio d'errore).
Mentre nell'esempio che avevo fatto prima, quello da riga di comando, non la crea.
(se ti serve crearla, visto che in quel caso stai dando tu in quel moemnto i comandi uno alla volta al prompt del comando, basta che dai l'apposito comando o la crei in altro modo)
francescodue ha scritto: | Ho provato ad utilizzarlo, ma mi crea un solo file senza estensione nella stessa cartella. |
che ho sbagliato?
In che cartella te lo crea
e con che nome?
francescodue ha scritto: | Per quanto riguarda gli altri utenti, visto che il pc resta acceso anche fuori orario seguirò il tuo consiglio. | Penso ti riferisca non a me ma a ioSOLOio ...
francescodue ha scritto: | Però mi serve aiuto anche in questo: utilizzo una funzione pianificata per lanciare il bat o integro in questo il periodo di attivazione? | Funzione pianificata, intendi "Operazioni pianificate" di Windows? (tipo "esegui all'ora X"). Quello sì.
L'altra cosa non l'ho capita. |
|
Top |
|
 |
francescodue Dio minore

Registrato: 26/09/08 11:00 Messaggi: 565
|
Inviato: 29 Set 2008 10:58 Oggetto: |
|
|
Rieccomi di nuovo.
Non sono molto pratico di post, quindi spero non vi arrabbierete se ogni tanto sbaglio qualche riferimento a chi mi aiuta.
Posto il file bat che ho creato sull'esempio di chemicalbit così vedete se ho sbagliato qualcosa.
@echo off
md c:\prova2
cd c:\prova1
for %%f in (*.igs) do copy %%f c:\prova2
Nella cartella prova1 ho messo due file e il risultato è che mi crea un file, uno a caso con il nome giusto, senza estensione ma nella cartella c:\.
Comunque il mio problema è piuttosto quello di selezionare i file e comprimerli nella stessa cartella.
Per cancellarli posso eventualmente fare una ricerca per tipo ed eliminarli da lì in un secondo tempo.
Ho fatto qualche altra prova da riga di comando con 7zip, ma non riesco a lanciarlo da cartelle diverse.
Potete aiutarmi?
Grazie. |
|
Top |
|
 |
chemicalbit Dio maturo


Registrato: 01/04/05 18:59 Messaggi: 18597 Residenza: Milano
|
Inviato: 29 Set 2008 11:40 Oggetto: |
|
|
francescodue ha scritto: | quindi spero non vi arrabbierete se ogni tanto sbaglio qualche riferimento a chi mi aiuta. | Nessun problema. Lo precisavo solo per essere io sicuro di aver capito giusto.
francescodue ha scritto: | Posto il file bat che ho creato sull'esempio di chemicalbit così vedete se ho sbagliato qualcosa.
@echo off
md c:\prova2
cd c:\prova1
for %%f in (*.igs) do copy %%f c:\prova2 |
Per farlo più sicuro e più completo aggiungi un comando c: prima del comando cd (in questo modo se è su un altro disco, si sposta sul disco c: )
Quindi
Codice: | @echo off
md c:\prova2
c:
cd c:\prova1
for %%f in (*.igs) do copy %%f c:\prova2 |
francescodue ha scritto: | Nella cartella prova1 ho messo due file | due file entrambi con estensione .igs ?
Prova a metterci 4 file , 2 con estensione .igs e 2 diversi (es. 1 .txt e 1 .jpg)
francescodue ha scritto: | e il risultato è che mi crea un file, uno a caso con il nome giusto, senza estensione ma nella cartella c:\. | Oh bella!
La cartella c:\prova2 esiste? Ed è vuota?
il contenuto del file senza estensione è uguale a quello del file copiato (con lo stesso nome) ?
francescodue ha scritto: | Comunque il mio problema è piuttosto quello di selezionare i file e comprimerli nella stessa cartella. | Il comando for dovrebbe fare proprio questa selezione,
non capisco perché non vada ... .-k
francescodue ha scritto: | Ho fatto qualche altra prova da riga di comando con 7zip, ma non riesco a lanciarlo da cartelle diverse. | Scusa, non ho capito. |
|
Top |
|
 |
francescodue Dio minore

Registrato: 26/09/08 11:00 Messaggi: 565
|
Inviato: 29 Set 2008 13:21 Oggetto: |
|
|
Ho corretto il bat come mi avete indicato.
Adesso funziona: cioè crea la cartella prova2 e ci copia i due file IGS correttamente.
Per quanto riguarda 7zip ho fatto ulteriori ricerche.
Aggiungendo nelle variabili d'ambiente di sistema il percorso si attiva da tutte le cartelle.
Però il risultato non è ancora sufficiente:
al momento devo digitare da riga di comando la stringa
7z a nomefile.7z nomefile.igs
Non riesco a trovare il modo per fargli usare il nomefile.igs come nome del file compresso. Anche perché in questo modo devo scrivere stringhe per tutti i file e spostarmi in tutte le cartelle.
Ho letto da qualche parte di creare una lista di file e usarla come sorgente, ma non saprei come utilizzarla.
Qualche idea?
Grazie. |
|
Top |
|
 |
|