Indice del forum Olimpo Informatico
I Forum di Zeus News
Leggi la newsletter gratuita - Attiva il Menu compatto
 
 FAQFAQ   CercaCerca   Lista utentiLista utenti   GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo   Messaggi privatiMessaggi privati   Log inLog in 

    Newsletter RSS Facebook Twitter Contatti Ricerca
* Zippare file distinti e mantenerli distinti
Nuovo argomento   Rispondi    Indice del forum -> Software - generale
Precedente :: Successivo  
Autore Messaggio
chemicalbit
Dio maturo
Dio maturo


Registrato: 01/04/05 18:59
Messaggi: 18597
Residenza: Milano

MessaggioInviato: 29 Set 2008 14:44    Oggetto: Rispondi citando

francescodue ha scritto:
Ho corretto il bat come mi avete indicato.
Adesso funziona: cioè crea la cartella prova2 e ci copia i due file IGS correttamente.
Cioè?
e' bastato aggiungere la riga "c:" ?

(Tu hai più di un disco, ed eri sull'altro disco?)
Top
Profilo Invia messaggio privato
chemicalbit
Dio maturo
Dio maturo


Registrato: 01/04/05 18:59
Messaggi: 18597
Residenza: Milano

MessaggioInviato: 29 Set 2008 15:14    Oggetto: Rispondi citando

francescodue ha scritto:
Per quanto riguarda 7zip ho fatto ulteriori ricerche.
Aggiungendo nelle variabili d'ambiente di sistema il percorso si attiva da tutte le cartelle.
Sì, aggiungendolo alla varibile %PATH& (che è una lista di directory separate da ";" )

A parte quello -che forse è il metodo più semplice se usi tanto 7zip -,
basta lanciare il programma fornendo il percorso compelto.

ad es. se sei nella directory d:\pippo\dati\parte3 (nella finestra del promt dei comandi avrai un prompt d:\pippo\dati\parte3> )
puoi scrivere c:\programmi\directory_del_programma\7zip.exe esempio.txt

e ti comprimerà il file esempio.txt che sta nella cartella corrente ( d:\pippo\dati\parte3 )

Nota: l'esempio l'ho inventato, non conosco la sintassi di 7zip
EDIT: anzi leggendo il tuo di esempio, penso proprio che quella che ho indicato io è sbagliata.
Il mio esempio comunque serve solo a indicare che puoi lanciare un programma che sta in una directory da un'altra directory.


francescodue ha scritto:
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.
Eh, quello è difficile,

1) il programma tenderà a far usare la sua estensione, per far sì che il file sia riconoscibile,
e che lo si possa parire facendoci doppio clik.
Ma forse puoi forzare di usare un nome a tua scelta, con l'estensione che vuoi.

2) Però tenere lo stesso nome penso proprio non si possa. Anche perché 7zip non può creare un file compresso di nome nomefile.igs , visto che è un nome che esiste già.
(anche se c'è un'opzione per cancellare il file dopo averlo compresso, lo farà apputno dopo).

Puoi ovviare così,
* lo comprimi come nomefile.7z
* cancelli in file nomefile.igs (oppure hai fatto in modo che 7zip lo cancellasse lui al termine della compressione)
* rinomini nomefile.7z in nomefile.igs . Ad es.
Codice:
ren *.7z *.igs
rinomina tutti (occhio!!!) i file 7z presenti nella cartella corrente nel nome corrispondente ma con estensione .igs

Però non mi piace comnque, per il motivo 3

3) E quando poi andrai a scomprimerlo?
Non potrai scompriemerlo perché esisterà già un file (quello compresso) con quel nome.


Uhm Think , si potrebbe ovviare usando due directory diverse ,
però è più complesso se non si è pratici
e si rischia di fare confusione su quale sia il file compresso e quale no (avere due file con lo stesso nome ... significa rischiare sì confusione!)

Ma perché vuoi che il file compresso si chiami nomefile.igs ?!



francescodue ha scritto:
Anche perché in questo modo devo scrivere stringhe per tutti i file e spostarmi in tutte le cartelle.
(a parte che non hocapito il nesso col problema precedente)

Per eseguire il comando più volte, una per ciascun file puoi usare il comando "for" di cui parlavamo.

Per le directory (cartelle), quante sono?
Se sono non poche ma comunque non tante, col copia e incolla non dovrebbe essere un grosso problema ripetere il programma e cambiare la scritta che indica il nome della directory.
Oppure puoi lanciare un file batch passandogli un parametro (il nome delal directory), se t'interessa ti spiego come.


Oppore, come dicevo qualche messaggio fa (mi pare, ci sono stati vari messaggi, non ricordo con certezza) il comando for ha alcuni parametri (che conosco solo per sentito dire, perché introdotti dopo il DOS 5 e 6, quando io utilizzavo file batch per automatizzare praticamente tutto -non c'erano le icone su cui fare doppio click Wink )
e mi pare una preveda proprio la ricorsione nelle directory.
Andrebbe però provato.

francescodue ha scritto:
Ho letto da qualche parte di creare una lista di file e usarla come sorgente, ma non saprei come utilizzarla.
Intendi una cosa specifica di 7zip (non di DOS/Windows)?
Può essere, ricordo che pkzip e arj (compressori dell'epoca del DOS) l'avevano.
Si tratta però di una lista di file da mettere tutti nello stesso archivio compresso,
tu invece vuoi che in ogni archivio ci vada un solo file.
Top
Profilo Invia messaggio privato
francescodue
Dio minore
Dio minore


Registrato: 26/09/08 11:00
Messaggi: 567

MessaggioInviato: 29 Set 2008 15:59    Oggetto: Rispondi citando

Eccomi di nuovo.
Forse non sono stato chiaro (un mio amico dice che sono chiarissimo a non farmi capire).
Io non voglio che il file compresso mantenga l'estensione .igs.
Il comando 7z a nomefile.zip nomefile.igs
crea appunto un file .7z del file .igs.
E fin qui tutto bene.
Il problema è che per ogni file devo digitare la stringa, cioè devo leggere i nomi dei file.igs.
Usando il path nelle variabili d'ambiente posso ripetere la stessa procedura in tutte le cartelle senza dover scrivere il path di 7zip.
Però non posso dirgli, o almeno non ci riesco, prendi il nome del primo file .igs e usalo come nomefile per creare un file .7z.
Che poi debba usare FOR è indubbio, perché altrimenti ripeterebbe all'infinito il primo passo, almeno finché non cancello il primo file .igs.
Il discorso della lista di file, ripeto che l'ho letto senza capirlo più di tanto, servirebbe come passaggio intermedio: da quello che ho capito bisogna creare una lista di file da cui estrarre riga per riga il nome da passare a 7z per la compressione.
Non so assolutamente se una cosa del genere è fattibile, serva allo scopo o complichi la vita per niente.
Per quanto riguarda il bat per copiare i file è bastato davvero aggiungere la stringa c:
ed ero sullo stesso disco.
Non chiedermi perché non ne ho idea.
Intanto grazie.
Top
Profilo Invia messaggio privato
chemicalbit
Dio maturo
Dio maturo


Registrato: 01/04/05 18:59
Messaggi: 18597
Residenza: Milano

MessaggioInviato: 29 Set 2008 17:48    Oggetto: Rispondi citando

francescodue ha scritto:
Però non posso dirgli, o almeno non ci riesco, prendi il nome del primo file .igs e usalo come nomefile per creare un file .7z.
Il problema è "staccare" il nome del file vero e proprio (la parte prima dell'estensione) dall'estensione .igs ?

Sì, quello è un problema (ma ho in mente due ipotesi di modi in cui forse si può risolvere)

Cioè,
un attimo .... faccio un passo indietro che spiego cosa avviene nel ciclo for :
Codice:
for %%f in (*.igs) do 7z a nomefile.zip %%f

1- il ciclo for guarda tutti i file .igs
2- assegna alla varibile (chiamiamola %%f ) il nome completo del primo file , quindi esempio1.igs e poi alla ripetizione successiva esempio2.igs e così via
3- a quel punto for esegue il comando , sostituendo a %%f il valore di quella varibile.

E a noi non va bene,
o meglio a noi non basta
perché dobbiamo far sì che il ciclo for lanci -a questa ripetizione-
Codice:
7z a esempio1.zip esempio1.igs
e a quella dopo
Codice:
7z a esempio2.zip esempio2.igs
e così via.

dobiamo cioè trovare un modo per cambiare ad ogni ripetizione nomefile.zip,
però nel ciclo for come lo conosco io (che ripeto, risale ad anni e anni fa, dos 5) la variabile può essere solo uguale al nome compelto del file "trovato" dal ciclo for , e il inguagigo batch non ha un modo -che io sappia, forse hanno introdotto qualcosa anche lì- di manipolare le stringhe (quindi estrarre esempio1 da esempio1.igs) .


Le due ipotesi di due metodi che mi sono venuti in mente che potrebbero esserci (e che dobbiamo verificare se effettivamente sono utilizzabili)

A) Non è che 7zip (o altro programma) ha anche una sintassi semplificata, nel caso si comprima un solo file?
Ad es. non è che si possa dare il comando
Codice:
7z a nomefile.igs
e lui capisce da solo che deve creare un file nomefile.zip

(o altra sintassi che pemetta di non specificare il nome del file di destinazione, quello compresso)

B) Sempre dall'occhiata veloce che avevo dato tempo fa alle "nuove" opzioni del comando for,
mi pare ci fosse qualcosa per manipolare le varibili, però nonavevo approfondito.

Prova ad prire il prompt dei comandi e scrivere
Codice:
for /?
e premere invio.
Ti verrà presentata una spiegazione delle opzioni del comando, schermata per schermata.
C'è nulla per ottenere il nome senza estensione?


Altrimenti ci sarebbe la possibilità
C) , cioè usare un vero e proprio lignuaggio di script, come javascript o visualbasic per manipolare le sctinghe dei nomi dei file.

---------------

p.s. questa discussione è interessante, perché tratta di come automatizzare alcune operazioni sui file.

Ma nel tuo caso specifico sicuro che sia la cosa migliore?
Se il tuoscopo è solo non avere file troppo grandi che complicherebbero il back-up, è necessario fare proprio file compressi singoli (e non ad es. uno per rurrii file .igs di una cartella; o altri metodi)

-è che non hoi dea di che dimensione abbia un file .igs (tra l'altro sono file di "CAD Overlay", o sono file "Initial Graphics Exchange Specification Format", o cosa ?) -


Hai detto che l'archivio è ancor ainuso -anche se non frequentemente-
ma solo in lettura o anche in scrittura (si modificanoi file esistenti o se ne aggiungono)?

p.s. come vedi "un mio amico dice che sono chiarissimo a non farmi capire", si applica bene anche a me Confused
Top
Profilo Invia messaggio privato
GrayWolf
Dio maturo
Dio maturo


Registrato: 03/07/05 17:24
Messaggi: 2325
Residenza: ... come frontiera i confini del mondo...

MessaggioInviato: 29 Set 2008 20:26    Oggetto: Rispondi citando

Scusate il disagio, stiamo lavorando per voi...

Lo script che avevo promesso è quasi pronto [80% dello sviluppo]
se avete un attimo di pazienza appena completato e fatte delle prove concrete, lo posto e così vediamo se il problema si risolve.

I .bat o i .cmd con il ciclo for sono potenti ma farraginosi e difficili da personalizzare.

Comunque:
per arrivare a qualcosa di concreto, il ciclo for, dopo il "do", deve contenere il richiamo una seconda procedura che riceve il nome di file come parametro [%1] e che lo tratta singolarmente.

ah, dimenticavo... il richiamo alla procedura di secondo livello, deve essere effettuato con una call [altrimenti dopo il primo trattamento il ciclo si conclude]
Top
Profilo Invia messaggio privato
francescodue
Dio minore
Dio minore


Registrato: 26/09/08 11:00
Messaggi: 567

MessaggioInviato: 30 Set 2008 10:31    Oggetto: Rispondi citando

Rieccomi.
Ho letto solo stamattina i nuovi post.

Per chemicalbit
7zip prende il nome file in automatico solo da Windows, da riga di comando non ho trovato alcun comando semplificato che faccia questa operazione: cioè prende il nome del file senza estensione e lo usa per il file compresso.
L'aiuto del comando FOR mi dice un sacco di cose, ma devo studiarmelo per capire esattamente cosa fa e se lavora per le stringhe.
Scusami, ma sono abbastanza scarso per queste cose.
Riguardo al fatto di comprimere tutti i file in un solo archivio compresso, sarebbe una soluzione scomoda: i file IGES raggiungono facilmente i 10 o 20MB e vengono spediti a clienti e fornitori per controlli e produzione. E spesso ne vengono inviate più versioni (con il nome leggermente diverso per distinguerli). Dovendo ricontrollare cosa si è spedito, o magari spedire ad altri, è molto più semplice cercare nell'archivio piuttosto che fare il giro degli allegati. Anche perché spesso ogni file è associato ad altri documenti, magari foto o relazioni e torna utile individuare il file a colpo d'occhio.

Per chemicalbit e graywolf
Visto che di programmazione in visualbasic non so nulla, avevo optato per il batch solo perché qualche piccolo comando lo conosco.
Per me andrebbe bene anche usare altri sistemi (non sapevo che si potesse usare il javascript al di fuori di internet), ma in questo caso dovreste prendermi per mano e dirmi lettera per lettera cosa fare.

Per graywolf
Sono curioso di vedere cosa viene fuori.

Intanto grazie a tutti.
Top
Profilo Invia messaggio privato
GrayWolf
Dio maturo
Dio maturo


Registrato: 03/07/05 17:24
Messaggi: 2325
Residenza: ... come frontiera i confini del mondo...

MessaggioInviato: 30 Set 2008 13:04    Oggetto: Rispondi citando

francescodue ha scritto:

...
Per chemicalbit e graywolf
Visto che di programmazione in visualbasic non so nulla, avevo optato per il batch solo perché qualche piccolo comando lo conosco.
Per me andrebbe bene anche usare altri sistemi (non sapevo che si potesse usare il javascript al di fuori di internet), ma in questo caso dovreste prendermi per mano e dirmi lettera per lettera cosa fare.

Per graywolf
Sono curioso di vedere cosa viene fuori.

Intanto grazie a tutti.


Prego 8)

Tranqui, ci sarà una spiegazione perfino "pallosa"

Per il funzionamento dello script e per poter fare quello che chiedi sarà necessario lo scarico di IZARCC e se aggrada, anche di IZARC
[quest'ultimo però non è quello usato dallo script, ma può essere una valida alternativa ad altri compressori] Wink

P.S.
Lo script sarà in VBScript, ma niente vieterebbe di usare anche JavaScript [con i sistemi Windows (se non ricordo male da NT in poi, ma potrei sbagliarmi) sono stati introdotti gli interpreti di questi due linguaggi per il loro uso off-line]
Top
Profilo Invia messaggio privato
GrayWolf
Dio maturo
Dio maturo


Registrato: 03/07/05 17:24
Messaggi: 2325
Residenza: ... come frontiera i confini del mondo...

MessaggioInviato: 01 Ott 2008 20:37    Oggetto: Rispondi citando

Finally... habemus scriptus

Codice:

' VB Script Document
option explicit

'* *****************************************************************************
'* Scopo dello script:                                                         *
'*                      **************************************                 *
'*                      * Comprimere i files di una cartella *                 *
'*                      * incluse o escluse le sottocartelle *                 *
'*                      **************************************                 *
'*                                                                             *
'* Note:                                                                       *
'*                                                                             *
'* 1^ Lo script presuppone l'uso di IZARCC.EXE                                 *
'*    programma gratuito per la compressione da linea comando                  *
'*    scaricabile dal sito: http://www.izarc.org                               *
'*                                                                             *
'* 2^ La realizzazione di questo script è stata possibile anche grazie         *
'*    agli esempi reperiti sul sito: http://www.jsware.net                     *
'*                                                                             *
'* *****************************************************************************

'* =============================================================================
'*                           PERSONALIZZAZIONE
'*                           -----------------

'* ------------------------------------------------------------
'*              cartella di ORIGINE dei files da comprimere
'* ------------------------------------------------------------
'*
'* indicare il percorso ove risiedono i falies da comprimere
'*
'* esempio: sPercorsoOrigine = "C:\miei Files\Da Comprimere"
  sPercorsoOrigine = ""
'* ------------------------------------------------------------

'* ------------------------------------------------------------
'*             cartella di DESTINAZIONE dei files compressi
'* ------------------------------------------------------------
'*
'* indicare il percorso di deposito dei files compressi
'*
'* esempio: sPercorsoDestinazione = "C:\miei_Files\Compressi"
  sPercorsoDestinazione = ""
'* ------------------------------------------------------------

'* ------------------------------------------------------------
'*                       percorso del COMPRESSORE
'* ------------------------------------------------------------
'*
'* indicare il percorso nel quale è stato installato IZARCC
'*
'* esempio: sPercorsoCompressore = "C:\Programmi\IZarc\CommandLine"
  sPercorsoCompressore = ""
'* ------------------------------------------------------------

'* ------------------------------------------------------------
'*                       FILTRO
'* ------------------------------------------------------------
'*
'* indicare il filtro da utilizzare  per includere SOLO i files
'* con la stessa estensione
'*
'* esempi : sFiltro = "*.doc" saranno presi  in  considerazione
'*                            solo i files di word
'*          sFiltro = "*.jpg" saranno presi  in  considerazione
'*                            solo i files di immagini
'*          sFiltro = "*.*" saranno presi  in  considerazione
'*                            TUTTI i files presenti
  sFiltro = "*.*"
'* ------------------------------------------------------------

'* ------------------------------------------------------------
'*                  INCLUSIONE delle sottocartelle
'* ------------------------------------------------------------
'*
'* indicare se nella compressione devono essere trattate
'* anche le sottocartelle della cartella comunicata come parametro
'*
'* esempio:
'*  bIncludiSottocartelle = false '-->le sottocartelle NON saranno considerate
'*  bIncludiSottocartelle = true  '-->le sottocartelle SARANNO considerate

  bIncludiSottocartelle = false
'* ------------------------------------------------------------

'* ------------------------------------------------------------
'*                     TRATTAMENTO ORIGINE
'* ------------------------------------------------------------
'*
'* indicare il tipo di trattamento dei files originali
'*
'* esempio:
'* bMoveFile = false '--> i files originali NON saranno cancellati
'* bMoveFile = true  '--> i files originali SARANNO cancellati

  bMoveFile = false
'* ------------------------------------------------------------

'* ------------------------------------------------------------
'*                    ESPOSIZIONE MESSAGGIO
'*                per la CONFERMA dei parametri
'*                e per l'AUTORIZZAZIONE all'esecuzione
'* ------------------------------------------------------------
'*
'* indicare se lo script si deve fermare esponendo il messaggio
'* con l'elenco dei parametri e  chiedendo  l'autorizzazione  a
'* procedere con il lavoro
'*
'* esempio:
'* bChiediConfermaParametri = false '--> l'esecuzione si avverà immediatamente
'* bChiediConfermaParametri = true  '--> dopo la rilevazine dei parametri,  lo
'*                                       script ne esporrà i valori e chiederà
'*                                       l'autorizzazione all'esecuzione

  bChiediConfermaParametri = true
'* ------------------------------------------------------------

'* ------------------------------------------------------------
'*        ESPOSIZIONE LISTA dei files che SARANNO COMPRESSI
'* ------------------------------------------------------------
'*
'* indicare se lo script si deve fermare, richiamando  notepad,
'* per fornire la possibilità di  eliminare  alcuni  dei  files
'* trovati ricercando nella cartella principale ed eventualmen-
'* te nelle sottocartelle.
'*
'* esempio:
'* bExpoLista = false '--> l'esecuzione avverrà SENZA il richiamo di notepad
'* bExpoLista = true  '--> l'esecuzione avverrà CON   il richiamo di notepad

  bExpoLista = true
'* ------------------------------------------------------------

'* ------------------------------------------------------------
'*   RAGGRUPPO di tutti i files NELLA CARTELLA di DESTINAZIONE
'* ------------------------------------------------------------
'*
'* indicare se lo script deve depositare i files compressi nel-
'* la cartella di destinazione oppure se deve  lasciarli  nella
'* cartelle di origine.
'*
'* esempio:
'* bRaggruppo = false '--> i files  compressi  saranno lasciati
'*                         NELLA CARTELLA DI ORIGINE
'* bRaggruppo = true  '--> i files compressi saranno TRASFERITI
'*                         NELLA CARTELLA DI DESTINAZIONE
'*
'* ATTENZIONE: questo flag impostato a true
'*             con bMoveFile=false [o con il parametro /M=0]
'*             fa si che lo script
'*             NON CONSIDERI LA CARTELLA DI DESTINAZIONE

  bRaggruppo = false
'* ------------------------------------------------------------
'* =============================================================================



'* =========================================================
'*               DICHIARAZIONE delle VARIABILI
'* =========================================================
  dim objArgs
  dim oFSO
  dim oShell
  dim oFolder
  dim oSubFolders
  dim oSubFolder
  dim oFiles
  dim oFile

  dim sList
  dim sTmp
  dim sScriptName
  dim sScriptPath
  dim avList
  dim avArgs
  dim avTmp

  dim i
  dim a
  dim Return

  dim sInput
  dim sMsg
  dim lIco
  dim sTit

'* ------------------------------------
  dim sPercorsoOrigine
  dim sPercorsoCompressore
  dim sPercorsoDestinazione
  dim sFiltro
  dim bIncludiSottocartelle
  dim bMoveFile
  dim bChiediConfermaParametri
  dim bExpoLista
  dim bRaggruppo
'* ------------------------------------
'* =========================================================
'*          fine DICHIARAZIONE delle VARIABILI
'* =========================================================


'* =========================================================
'*                   MAIN LINE
'* =========================================================

  impoOggetti

  rilevaParametri

  impoParametri

  ctrlPersonalizzazione

  sList = ListaContenuti(sPercorsoOrigine)

  expoLista

  execCompressione

  WScript.quit

'* =========================================================
'*               fine MAIN LINE
'* =========================================================


'* =========================================================
'*            SOTTOPROCEDURE E FUNZIONI
'* =========================================================

'* =========================================================
  sub impoOggetti

    Set objArgs = Wscript.Arguments
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oShell = WScript.CreateObject("WScript.Shell")

    sScriptName = WScript.ScriptName
    sScriptPath = left(WScript.ScriptFullName, _
                       instr(WScript.ScriptFullName,sScriptName)-1 _
                      )
  end sub
'* =========================================================
  sub rilevaParametri

    if objargs.count > 0 then
      for a = 0 to objargs.count -1
        if a = 0 then
          sTmp = objargs(a)
        else
          sTmp = sTmp & "|" & objargs(a)
        end if
      next
    end if

    avArgs = split(sTmp,"|")

  end sub
'* =========================================================
  sub impoParametri

    for a = 0 to ubound(avArgs)
      avTmp = split(avArgs(a),"=")
      select case ucase(avTmp(0))
        case "/I"                                'input
          sPercorsoOrigine = trim(avTmp(1))

        case "/O"                                'output
          SPercorsoDestinazione = trim(avTmp(1))

        case "/C"                                'IZARCC
          SPercorsoCompressore = trim(avTmp(1))

        case "/F"                                'filtro
          SFiltro = trim(avTmp(1))

        case "/S"                                'sottocartelle
          bIncludiSottocartelle = cbool(avTmp(1) * -1)

        case "/M"                                'move files'
          bMoveFile = cbool(avTmp(1) * -1)

        case "/A"                                'autorizzazione
          bChiediConfermaParametri = cbool(avTmp(1) * -1)

        case "/L"                                'Lista files
          bExpoLista = cbool(avTmp(1) * -1)

        case "/R"                                'raggruppo in una cartella
          bRaggruppo = cbool(avTmp(1) * -1)
     end select
    next

  end sub
'* =========================================================
  sub ctrlPersonalizzazione()

    if len(trim(sPercorsoOrigine)) = 0 then
      sMsg = "PERCORSO della CARTELLA" _
           & string(2,vblf) _
           & " che CONTIENE I FILES DA COMPRIMERE"
      sPercorsoOrigine = Richiesta(sMsg)
    end if
    if not right(sPercorsoOrigine,1) = "\" then
      sPercorsoOrigine = sPercorsoOrigine & "\"
    end if
    sPercorsoOrigine = replace(sPercorsoOrigine,"""","")

    if len(trim(sPercorsoDestinazione)) = 0 then
      sMsg = "PERCORSO della CARTELLA" _
           & string(2,vblf) _
           & "che CONTERRÀ I FILES COMPRESSI"
      sPercorsoDestinazione = Richiesta(sMsg)
    end if
    if not right(sPercorsoDestinazione,1) = "\" then
      sPercorsoDestinazione = sPercorsoDestinazione & "\"
    end if
    sPercorsoDestinazione = replace(sPercorsoDestinazione,"""","")

    if len(trim(sPercorsoCompressore)) = 0 then
      sMsg = "PERCORSO della CARTELLA " _
           & string(2,vblf) _
           & "che contiene IZARCC.EXE"
      sPercorsoCompressore = Richiesta(sMsg)
    end if
    if not right(sPercorsoCompressore,1) = "\" then
      sPercorsoCompressore = sPercorsoCompressore & "\"
    end if
    sPercorsoCompressore = replace(sPercorsoCompressore,"""","")

    if len(trim(sFiltro)) = 0 then
      sMsg = "FILTRO per la SELEZIONE dei FILES" _
           & string(3,vblf) _
           & "*.* = tutti i files"
      sFiltro = Richiesta(sMsg)
    end if

    if not bIncludiSottocartelle = false _
   and not bIncludiSottocartelle = true then
      sMsg = "Immettere cosa fare per" _
           & string(2,vblf) _
           & "L'INCLUSIONE DELLE SOTTO CARTELLE" _
           & string(3,vblf) _
           & "0 = Le sottocartelle saranno ignorate" _
           & string(2,vblf) _
           & "1 = Le sottocartelle saranno incluse" _
           & vblf
      do
        bIncludiSottocartelle = Richiesta(sMsg)
      loop until bIncludiSottocartelle = "0" or bIncludiSottocartelle = "1"
      bIncludiSottocartelle = cbool(bIncludiSottocartelle * -1)
    end if

    if not bMoveFile = false _
   and not bMoveFile = true then
      sMsg = "Immettere come" _
           & string(2,vblf) _
           & "TRATTARE IL FILE ORIGINE" _
           & string(3,vblf) _
           & "0 = Il file originale rimane" _
           & string(2,vblf) _
           & "1 = Il file originale sarà cancellato" _
           & vblf
      do
        bMoveFile = Richiesta(sMsg)
      loop until bMoveFile = "0" or bMoveFile = "1"
      bMoveFile = cbool(bMoveFile * -1)
    end if

    if not bChiediConfermaParametri = false _
   and not bChiediConfermaParametri = true then
      sMsg = "Immettere se lo script deve" _
           & string(2,vblf) _
           & "ESPORRE I PARAMETRI " _
           & string(2,vblf) _
           & "ed essere AUTORIZZATO A PROSEGUIRE" _
           & string(3,vblf) _
           & "0 = lo script si esegue senza fermarsi" _
           & string(2,vblf) _
           & "1 = sarà esposto un messaggio per conferma" _
           & vblf
      do
        bChiediConfermaParametri = Richiesta(sMsg)
      loop until bChiediConfermaParametri = "0" or bChiediConfermaParametri = "1"
      bChiediConfermaParametrib = cbool(bChiediConfermaParametri * -1)
    end if

    if not bExpoLista = false _
   and not bExpoLista = true then
      sMsg = "Immettere se lo script deve" _
           & string(2,vblf) _
           & "ESPORRE LA LISTA   " _
           & vblf _
           & "dei files che saranno compressi" _
           & string(2,vblf) _
           & "e al rientro," _
           & vblf _
           & "essere AUTORIZZATO A PROSEGUIRE" _
           & string(3,vblf) _
           & "0 = lo script si esegue senza fermarsi" _
           & string(2,vblf) _
           & "1 = saranno esposti lista" _
           & vblf _
           & "      e messaggio per conferma" _
           & vblf
      do
        bExpoLista = Richiesta(sMsg)
      loop until bExpoLista = "0" or bExpoLista = "1"
      bExpoLista = cbool(bExpolista * -1)
    end if

    if not bRaggruppo = false _
   and not bRaggruppo = true then
      sMsg = "Immettere come lo script deve" _
           & string(2,vblf) _
           & "TRATTARE i files COMPRESSI" _
           & string(3,vblf) _
           & "0 = i files RIMANGONO nell'origine" _
           & string(2,vblf) _
           & "1 = i files sono TRASFERITI " _
           & vblf _
           & "      nella destinazione" _
           & vblf
      do
        bRaggruppo = Richiesta(sMsg)
      loop until bRaggruppo = "0" or bRaggruppo = "1"
      bRaggruppo = cbool(bRaggruppo * -1)
    end if

  '* richiesta conferma
    if bChiediConfermaParametri then
      sMsg = "PARAMETRI di ESECUZIONE" _
           & string(3,vblf) _
           & "Input : " & sPercorsoOrigine _
           & string(2,vblf) _
           & "Output : " & sPercorsoDestinazione _
           & string(2,vblf) _
           & "Files che corrispondono a : " & sFiltro _
           & string(2,vblf) _
           & "Compressore : " & sPercorsoCompressore _
           & string(2,vblf) _
           & "Inclusione sottocartelle : " & bIncludiSottoCartelle _
           & string(2,vblf) _
           & "Cancella file origine dopo la compressione : " & bMoveFile _
           & string(2,vblf) _
           & "Esposizione lista files da comprimere : " & bExpoLista _
           & string(2,vblf) _
           & "Files compressi trasferiti in destinazione : " & bRaggruppo _
           & string(3,vblf) _
           & "CONFERMA ESECUZIONE ?" _
           & string(3,vblf) _
           & "rispondendo 'No' lo script termina" _
           & vblf
      lIco = vbQuestion + vbYesNo
      sTit = "Richiesta AUTORIZZAZIONE"
      select case msgbox(sMsg,lIco,sTit)
        case vbNo
          WScript.quit
        case vbYes
         '* tutto OK
      end select
    end if

  end sub
'* =========================================================
  function ListaContenuti(sFolderspec)

    dim sLista
    dim sTmp
    dim sCmd
    dim sCmdName

    sCmdName = "_" _
             & creaNome(2) _
             & ".cmd"

   '* crea comando temporaneo
    sCmd = "@echo off" _
         & vbnewline
    sCmd = sCmd _
         & "dir " _
         & """" _
         & sFolderspec _
         & sFiltro _
         & """"
    sCmd = sCmd _
         & " /ad /aa /4 /ON /b /l"

    if bIncludiSottoCartelle then
     '* richiede l'esplorazione delle sottocartelle
      sCmd = sCmd _
           & " /s "
    end if

    sCmd = sCmd _
         & ">" _
         & """" _
         & sScriptPath _
         & "Elenco.txt" _
         & """"

   '* scrive comando temporaneo
    replaceFile sScriptPath & sCmdName, sCmd

   '* esegue
    sTmp = """" _
         & sScriptPath _
         & sCmdName _
         & """"
    Return = oShell.Run(sTmp , 2, true)

   '* rileva
    sLista = readFile(sScriptPath & "Elenco.txt")
    sTmp = replace(sTmp,"""","")
    oFSO.DeleteFile sTmp, true

   '* restituisce
    ListaContenuti = sLista

  end function
'* =========================================================
  sub expoLista

    Set oFile = oFSO.CreateTextFile("LstComp.txt", True)
    oFile.Write sList
    oFile.Close
    Set oFile = Nothing

    if bExpoLista then
     '* richiama e attende
      Return = oShell.Run("notepad " & "LstComp.txt", 1, true)
      sMsg = "Posso CONTINUARE?" _
           & string(3,vblf) _
           & "rispondendo 'No' lo script termina" _
           & string(2,vblf) _
           & "Conferma"
      lIco = vbQuestion + vbYesNo
      sTit = "Richesta CONFERMA"
      select case msgbox(sMsg,lIco,sTit)
        case vbNo
          Wscript.quit
        case vbYes
      end select
    end if

  end sub
'* =========================================================
  sub execCompressione

    dim sCmdC
    dim sCmd
    dim sCont
    dim sPathFile
    dim sFile
    dim sPathTmp
    dim sCmdName

    dim avCont


    dim f

    sCmdName = "_" _
             & creaNome(2) _
             & ".cmd"

    sCmdC = """" _
          & sPercorsoCompressore _
          & "IZARCC.exe" _
          & """" _
          & " "

    if bMoveFile then
     '* l'origine sarà cancellato
      sCmdC = sCmdC _
           & "-m "
    end if

   '* rileva lista
    sCont = readFile(sScriptPath & "Elenco.txt")
    avCont = split(sCont,vbnewline)

   '* ciclo di esecuzione compressione
    for f = 0 to ubound(avCont)
      if len(trim(avCont(f))) > 0 then
      '* enuclea il nome file
       sFile = right(avCont(f), _
                     len(avCont(f)) _
                         -(instrrev(avCont(f),"\") _
                          ) _
                    )

        if bRaggruppo = false then
         '* lo zip nella stessa cartella dell'origine
          sPathFile = replace(avCont(f),sPercorsoDestinazione,"")
          sPathTmp = replace(avCont(f),sPathFile,"")
        end if

        if bRaggruppo = true then
         '* lo zip nella cartella di destinazione
          sPathFile = sFile
          sPathTmp = sPercorsoDestinazione
        end if

        sCmd = "@echo off" _
             & vbnewline _
             & sCmdC _
             & """" _
             & sPathTmp _
             & sPathFile _
             & ".zip" _
             & """" _
             & " " _
             & """" _
             & avCont(f) _
             & """"

       '* scrive comando temporaneo
        replaceFile sScriptPath & sCmdName, sCmd

       '* esegue
        sTmp = """" _
             & sScriptPath _
             & sCmdName _
             & """"
        Return = oShell.Run(sTmp, 2, true)
        sTmp = replace(sTmp,"""","")
        oFSO.DeleteFile sTmp, true
      end if
    next

  end sub
'* =========================================================
  function Richiesta(sText)

    sInput = ""

    do
      sInput = inputbox(sText,"RICHIESTA",sInput)
      if len(trim(sInput)) = 0 then
        select case msgbox("premuto annulla o risposta vuota " _
                            & vblf _
                            & "chiudere il programma?" _
                           ,vbquestion+vbYesNo _
                           , "RICHIESTA" _
                          )
          case vbYes
            WScript.quit
          case vbNo
           '* ripete la richiesta
        end select
      end if
    loop until len(trim(sInput)) > 0

    Richiesta = sInput

  end function
'* =========================================================
  function readFile(sFilePath)

    if oFSO.FileExists(sFilePath) = false then
      ReadFile = ""
      exit function
    end If

    set oFile = oFSO.OpenTextFile(sFilePath, 1)
    ReadFile = oFile.ReadAll

    set oFile = Nothing

  end Function
'* =========================================================
  sub replaceFile(sFilePath, sText)

    dim Atr

   '* controlla il percorso
    if oFSO.GetParentFolderName(sFilePath) = "" then
      exit sub
    end if

   '* impo attributi a 0 e cancella:
    if oFSO.FileExists(sFilePath) then
      set oFile = oFSO.GetFile(sFilePath)
      Atr = oFile.Attributes
      oFile.Attributes = 0
      set oFile = nothing
      oFSO.DeleteFile sFilePath, true
    end if

    set oFile = oFSO.CreateTextFile(sFilePath, true)
    oFile.Write sText
    oFile.Close
    set oFile = nothing

    set oFile = oFSO.GetFile(sFilePath)
    oFile.Attributes = Atr
    set oFile = nothing

  end sub
'* =========================================================
  function creaNome(iCifreA)
    dim A
    dim M
    dim G
    dim H
    dim P
    dim S

    A = year(now)
    if iCifreA = 2 then
      A = right(year(now),2)
    end if
    M = Left("00",(2-len(month(now)))) & month(now)
    G = Left("00",(2-len(day(now)))) & day(now)
    H = Left("00",(2-len(hour(now)))) & hour(now)
    P = Left("00",(2-len(minute(now)))) & minute(now)
    S = Left("00",(2-len(second(now)))) & second(now)

    creaNome = A & M & G & H & P & S

  end function
'* =========================================================
'*        fine SOTTOPROCEDURE E FUNZIONI
'* =========================================================



Manualetto d'uso
Citazione:

Cos'è
Uno script in linguaggio VBScript
eseguibile su sistemi Windows da NT in poi.
Serve ad automatizzare le operazioni di compressione di files.

Cosa fa
Accetta parametri di personalizzazione per trattamenti diversificati.
Per ogni parametro non valorizzato ne effettua la richiesta.
S'interfaccia con IZARCC.exe per effettuare la compressione.
Comprime i files singolarmente.

Cosa [ancora] non fa
NON comprime i files in un unico zip
Negli zip prodotti, NON sono memorizzati i percorsi né assoluto né relativo


Come si personalizza [e possibili usi]
La personalizzazione può avvenire in quattro modi:
1° Predefinita
2° Parametrizzata
3° Mista
4° Neutra

Scenari possibili:

Comprimere e cancellare i files accumulatisi nella cartella_A,
trasferendoli nella cartella_B, dalla quale poi saranno trasfe-
riti in altra locazione.

Comprimere e cancellare i files accumulatisi nella cartella_A,
[ed eventuali sottocartelle], in modo che in tutta la struttura
delle cartelle rimangano solo i files compressi.

Salvare i files accumulatisi nella cartella_A [ed eventuali sottocartelle]
in modo che nella stessa cartella [e sottocartelle] siano presenti
originali e compressi.


Modalità Predefinita
Con il blocco note, modificare lo script nella parte che reca
l'intestazione "PERSONALIZZAZIONE", seguendo le indicazioni e
gli esempi per ciascuna variabile da impostare.

In questa modalità lo script può essere usato per la ripetizione
periodica dello stesso lavoro, cioè se non cambiano le cartelle
di origine e di destinazione nè alcun parametro di funzionamento.

Nota:
nulla vieta di produrre una copia dello script [con nome diverso]
in modalità predefinita, per ogni lavoro che deve essere eseguito.


Modalità Parametrizzata
Con il blocco note, impostare a "" TUTTI i valori descritti
nella parte che reca l'intestazione "PERSONALIZZAZIONE".
Associare i parametri di funzionamento al richiamo dello script.


Parametri:
/I=cartella_di_origine [carattere]
/O=cartella di destinazione [carattere]
/C=cartella di installazione di IZARCC.exe [carattere]
/F=filtro per tipo di file [carattere]
/S=inclusione sottocartelle [numero 0 o 1]
/M=cancellazione origine dopo la compressione [numero 0 o 1]
/A=emissione lista parametri prima di proseguire [numero 0 o 1]
/L=esposizione lista files prima di proseguire [numero 0 o 1]
/R=spostamento compressi nella destinazione [numero 0 o 1]

I parametri che si riferiscono a cartelle devono essere racchiusi tra doppie virgolette se i nomi contengono spazi

In questa modalità si ha una sola copia dello script, quello che
cambia saranno i parametri associati al richiamo dello script.
Nota:
I parametri possono essere espressi in qualsiasi ordine

esempio di richiamo:
"XXX.vbs" /I="f:\Mia Cartella\" /O="f:\mia Cartella\" /C=c:\Programmi\IZArc\CommandLine /F= *.* /S=1 /R=0 /L=1 /M=1
Comprime tutti i files presenti in f:\Mia Cartella e nelle sue sottocartelle
Cancella gli originali
Chiede conferma dei parametri
espone la lista dei files che saranno compressi
NON sposta i files nella cartella di destinazione


Modalità Mista
Con il blocco note, impostare i valori che non cambieranno mai
e utilizzare i rimanenti parametri [variabili di lavoro in lavoro]
legati al richiamo dello script.

Modalità Neutra
Con il blocco note, impostare a "" [due doppie virgolette consecutive]
TUTTI i valori descritti nella nella parte che reca l'intestazione "PERSONALIZZAZIONE".
Richiamare lo script SENZA ALCUN PARAMETRO associato al suo richiamo
e rispondere alle richieste per l'impostazione.

Come si richiama
attraverso un collegamento sul desktop o nel menu start
[se il lavoro deve essere eseguito tutte le volte che necessita]

oppure

con il richiamo del collegamento nelle operazioni pianificate
[se il lavoro deve essere svolto periodicamente]


Nota di particolare interesse:
I parametri associati al richiamo si "sovrappongono" a quelli predefiniti,
ma SOLO per la sessione di richiamo.


Copiare la parte definita come codice e incollarla in notepad,
salvare in un file con estensione .vbs con il nome voluto, nella cartella voluta.

Effettuare la stessa operazione con il manualetto salvandolo in un file che userete come consultazione.

Al primo utilizzo consiglio di effettuare il lavoro su cartelle predisposte per le prove e non direttamente sulle cartelle effettive.
Lo script non cancella nulla [tranne che l'origine mossa nello zip] ma...
le precauzioni non sono mai troppe Smile

Per domande, chiarificazioni e segnalazioni di malfunzionamenti:
cà sugno 8)

P.S.
Se decidete di lasciare i files compressi nelle stesse cartelle dei files originali,
NON è consigliabile eseguire per due volte consecutive lo script
senza prima aver trattato i files compressi, pena: il raddoppio dei files
Top
Profilo Invia messaggio privato
francescodue
Dio minore
Dio minore


Registrato: 26/09/08 11:00
Messaggi: 567

MessaggioInviato: 02 Ott 2008 09:54    Oggetto: Rispondi citando

Eccomi di nuovo.
Ringrazio infinitamente GrayWolf.
Però ho un problema.
Ho copiato il codice e inserito nel filtro *.igs però non comprime.
Il file VBS sembra funzionare: mi chiede percorso sorgente e percorso destinazione (ho provato a mettere lo stesso percorso e a metterne due diversi). Ho inserito il patch c:\programmi\izarc (per caso lo script è case sensitive?) mi mostra la lista dei file selezionati (corretta) ma non comprime.
Dal sito izarc ho scaricato sia l'ultima versione 3.81 sia la Command Line.
Sono io che sbaglio qualcosa?
Top
Profilo Invia messaggio privato
GrayWolf
Dio maturo
Dio maturo


Registrato: 03/07/05 17:24
Messaggi: 2325
Residenza: ... come frontiera i confini del mondo...

MessaggioInviato: 02 Ott 2008 10:20    Oggetto: Rispondi citando

francescodue ha scritto:
Eccomi di nuovo.
Ringrazio infinitamente GrayWolf.
Però ho un problema.
Ho copiato il codice e inserito nel filtro *.igs però non comprime.
Il file VBS sembra funzionare: mi chiede percorso sorgente e percorso destinazione (ho provato a mettere lo stesso percorso e a metterne due diversi). Ho inserito il patch c:\programmi\izarc (per caso lo script è case sensitive?) mi mostra la lista dei file selezionati (corretta) ma non comprime.
Dal sito izarc ho scaricato sia l'ultima versione 3.81 sia la Command Line.
Sono io che sbaglio qualcosa?


Probabilmente no.
[Tieni presente che lo script è alla sua prima versione e chi sviluppa dovrebbe essere l'ultimo a fare le prove "sul campo".]

1° lo script non à case sensitive, ma... izarcc.exe è installato nel percorso che hai dichiarato?
2° la lista riporta il percorso completo per ogni file listato?
3° crea una cartella apposita che contenga solo lo script
4° prova a lanciare lo script in modalità parametrizzata completa
e riporta qui la linea comando con tutti i parametri.

Per quanto riguarda il .3 tieni presente che lo script crea dei temporanei il cui nome è _AAAAMMGGPPSS.cmd, [annomesegiornooraprimisecondi] ora non vorrei che in qualche modo ci fosse una "sovrapposizione" [anche se non penso]
Top
Profilo Invia messaggio privato
francescodue
Dio minore
Dio minore


Registrato: 26/09/08 11:00
Messaggi: 567

MessaggioInviato: 02 Ott 2008 10:31    Oggetto: Rispondi citando

Aggiornamento.
Ho fatto alcuni test da riga di comando e izarc effettivamente funziona.
Ho provato anche da windows e funziona anche da lì.
L'unica anomali che ho trovato in windows è che per creare i file 7z impiega molto tempo e la barra di avanzamento resta immobile. Quindi non sai se sta lavorando o se si è piantato.
Potrebbe esserci un conflitto con 7zip?
A proposito: izarc da riga di comando può essere settato per creare 7z? Sulla guida non ho trovato opzioni in merito.
Top
Profilo Invia messaggio privato
GrayWolf
Dio maturo
Dio maturo


Registrato: 03/07/05 17:24
Messaggi: 2325
Residenza: ... come frontiera i confini del mondo...

MessaggioInviato: 02 Ott 2008 10:41    Oggetto: Rispondi citando

francescodue ha scritto:
Aggiornamento.
Ho fatto alcuni test da riga di comando e izarc effettivamente funziona.
Ho provato anche da windows e funziona anche da lì.
L'unica anomali che ho trovato in windows è che per creare i file 7z impiega molto tempo e la barra di avanzamento resta immobile. Quindi non sai se sta lavorando o se si è piantato.
Potrebbe esserci un conflitto con 7zip?
A proposito: izarc da riga di comando può essere settato per creare 7z? Sulla guida non ho trovato opzioni in merito.


7z?
No, izarc da linea comando crea .zip
Non credo esistano conflitti particolari, io li ho installati entrambi e non mi danno nessun problema;
altra cosa che non capisco è:

francescodue ha scritto:
7z impiega molto tempo e la barra di avanzamento resta immobile. Quindi non sai se sta lavorando o se si è piantato.


ah, altra cosa... i due programmi richiamati tramite GUI [Grafical User Interface ] la loro interfaccia grafica, "vedono" ognuno i files creati dall'altro.
Top
Profilo Invia messaggio privato
francescodue
Dio minore
Dio minore


Registrato: 26/09/08 11:00
Messaggi: 567

MessaggioInviato: 02 Ott 2008 11:03    Oggetto: Rispondi citando

Scusami ma mi sono espresso male.
Intendo dire che lanciando Izarc da Windows e impostando come formato 7z resta per molto tempo con la barra di avanzamento immobile.
Il formato zip mi va benissimo.
Il problema, come dicevo, è che lo script non esegue la compressione.
Devo fare qualche personalizzazione o verificare qualcosa in particolare del sistema operativo?
Top
Profilo Invia messaggio privato
GrayWolf
Dio maturo
Dio maturo


Registrato: 03/07/05 17:24
Messaggi: 2325
Residenza: ... come frontiera i confini del mondo...

MessaggioInviato: 02 Ott 2008 11:29    Oggetto: Rispondi citando

ti riporto il mio post precedente:
GrayWolf ha scritto:
francescodue ha scritto:

Eccomi di nuovo.
Ringrazio infinitamente GrayWolf.
Però ho un problema.
Ho copiato il codice e inserito nel filtro *.igs però non comprime.
Il file VBS sembra funzionare: mi chiede percorso sorgente e percorso destinazione (ho provato a mettere lo stesso percorso e a metterne due diversi). Ho inserito il patch c:\programmi\izarc (per caso lo script è case sensitive?) mi mostra la lista dei file selezionati (corretta) ma non comprime.
Dal sito izarc ho scaricato sia l'ultima versione 3.81 sia la Command Line.
Sono io che sbaglio qualcosa?



Probabilmente no.
[Tieni presente che lo script è alla sua prima versione e chi sviluppa dovrebbe essere l'ultimo a fare le prove "sul campo".]

1° lo script non à case sensitive, ma... izarcc.exe è installato nel percorso che hai dichiarato?
2° la lista riporta il percorso completo per ogni file listato?
3° crea una cartella apposita che contenga solo lo script
4° prova a lanciare lo script in modalità parametrizzata completa
e riporta qui la linea comando con tutti i parametri.

Per quanto riguarda il .3 tieni presente che lo script crea dei temporanei il cui nome è _AAAAMMGGPPSS.cmd, [annomesegiornooraprimisecondi] ora non vorrei che in qualche modo ci fosse una "sovrapposizione" [anche se non penso]


Prova a seguire i passi elencati e vediamo che succede
Top
Profilo Invia messaggio privato
francescodue
Dio minore
Dio minore


Registrato: 26/09/08 11:00
Messaggi: 567

MessaggioInviato: 02 Ott 2008 12:34    Oggetto: Rispondi citando

Eccomi di nuovo.
Allora
1° Izarcc.exe è installato nella cartella dichiarata. Nelo script però fai riferimento a Commandlind, che io non trovo da nessuna parte.

2° lanciando il vbs da windows mi mette la sola lista dei file, mentre se digito l'intera stringa che mi hai indicato nel manualetto (escluso commandline) mi compaiono anche i percorsi completi. Per intenderci da riga di comando digito
vbs-zip-singoli.vbs /I="f:\Mia Cartella\" /O="f:\mia Cartella\" /C=c:\Programmi\IZArc /F= *.* /S=1 /R=0 /L=1 /M=1

3° ho provato sia mettendolo in una cartella distinta sia lasciandolo nella cartella di prova che usavo. L'unica che non ho provato è mettere lo script in C. Però, nella mi aignoranza, mi pare che il problema dipenda da izarc piuttosto che dallo script.

4° Che cosa intendi per modalità parametrizzata completa? E la linea di comando intendi quella che ho trovato nel manuale che mi hai fornito?

Per quanto riguarda i file temporanei, non ne vedo da nessuna parte: dovrebbe crearli nella stessa cartella dello script? Li compaiono due file, Elenco.txt e LstComp.txt, che contengono gli stessi dati.
Top
Profilo Invia messaggio privato
GrayWolf
Dio maturo
Dio maturo


Registrato: 03/07/05 17:24
Messaggi: 2325
Residenza: ... come frontiera i confini del mondo...

MessaggioInviato: 02 Ott 2008 13:02    Oggetto: Rispondi citando

francescodue ha scritto:
Eccomi di nuovo.
Allora
1° Izarcc.exe è installato nella cartella dichiarata. Nelo script però fai riferimento a Commandlind, che io non trovo da nessuna parte.

quello è un esempio, nel caso IZARCC.EXE sia stato installato in una cartella diversa da quella in cui è installato IZARC.EXE [nota la differenza]

francescodue ha scritto:
2° lanciando il vbs da windows mi mette la sola lista dei file, mentre se digito l'intera stringa che mi hai indicato nel manualetto (escluso commandline) mi compaiono anche i percorsi completi. Per intenderci da riga di comando digito
vbs-zip-singoli.vbs /I="f:\Mia Cartella\" /O="f:\mia Cartella\" /C=c:\Programmi\IZArc /F= *.* /S=1 /R=0 /L=1 /M=1

ma i file sono sul disco f: o sono da qualche altra parte? devi modificare i parametri in modo tale che le cartelle siano le tue,
"f:\Mia Cartella" è un esempio tu lo devi sostituire con l'indirizzo della cartella effettiva [o con l'indirizzo della cartella di prova, nella quale hai copiato alcuni files per fare le prove dello script] e ancora: IZARCC.EXE è in c:\Programmi\IZARC ?
poi devi spiegarmi cosa significa: "Lanciando il vbs da Windows", intendi forse che utilizzi Start -> Esegui e digiti tutte le volte il comando?

francescodue ha scritto:
3° ho provato sia mettendolo in una cartella distinta sia lasciandolo nella cartella di prova che usavo. L'unica che non ho provato è mettere lo script in C. Però, nella mi aignoranza, mi pare che il problema dipenda da izarc piuttosto che dallo script.

Infatti, lo script lo puoi mettere dove vuoi, ma devi dirgli dove è collocato IZARCC.EXE

francescodue ha scritto:
4° Che cosa intendi per modalità parametrizzata completa? E la linea di comando intendi quella che ho trovato nel manuale che mi hai fornito?

Si, per completamente parametrizzata, intendo TUTTI i parametri in linea comando, ma assicurati che siano i valori che corrispondono al tuo sistema, quello del manualetto è solo un esempio

francescodue ha scritto:
Per quanto riguarda i file temporanei, non ne vedo da nessuna parte: dovrebbe crearli nella stessa cartella dello script? Li compaiono due file, Elenco.txt e LstComp.txt, che contengono gli stessi dati.

E' giusto, quelli sono due files che hanno un significato di log,
Elenco.txt è la lista dei files che ti è presentata
LstComp.txt è la lista dei files che sono stati compressi
In caso di nessuna modifica della lista che ti appare in notepad a metà del lavoro, i due files hanno gli stessi contenuti, nel caso tu, con notepad, abbia modificato la lista [cioè che tu abbia cancellato alcune righe in Elenco.txt e poi che tu abbia salvato il file modificato], i due files sono differenti.
i files di comando [_AAAAMMGGHHPPSS.cmd] non li troverai mai perché lo script [proprio per evitare sovrapposizione e riempire la cartella con un incommensurabile numero di files inutili] dopo la loro esecuzione, li cancella.
Top
Profilo Invia messaggio privato
francescodue
Dio minore
Dio minore


Registrato: 26/09/08 11:00
Messaggi: 567

MessaggioInviato: 02 Ott 2008 13:21    Oggetto: Rispondi citando

Rieccomi.
1° Nella cartella c:\programmi\Izarc trovo sia izarc.exe che izarcc.exe. Può essere questo il problema?

2° La stringa esatta che ho usato è la seguente (sorry) da prompt dei comandi (DOS)
[b]vbs-zip-singoli.vbs /I="c:\prova\" /O="c:\prova\" /C=c:\Programmi\IZArc /F= *.igs /S=1 /R=0 /L=1 /M=1[/b]
Con questa mi compaioni i due file Elenco.txt e LstComp.txt con l'elenco dei file da usare completi di percorso (c:\prova\pippo.igs ecc.)
Se invece lancio il file vbs da esplora risorse mi fa la stessa cosa, ma i due file di testo (Elenco e LstComp) hanno solo la lista dei nomi senza percorso.

3° Ho fatto ulteriori prove ed effettivamente non cambia nulla.
4° Al punto due ti ho postato il comando che ho usato.

Quindi mi confermi che posso modificare la lista prima della compressione. Quindi volendo potrei aggiungere file diversi all'ultimo momento.
Ti chiedevo dei file temporanei perché pensavo che restassero attivi per tutto il tempo di esecuzione della compressione.
Top
Profilo Invia messaggio privato
GrayWolf
Dio maturo
Dio maturo


Registrato: 03/07/05 17:24
Messaggi: 2325
Residenza: ... come frontiera i confini del mondo...

MessaggioInviato: 02 Ott 2008 13:36    Oggetto: Rispondi citando

francescodue ha scritto:
Rieccomi.
1° Nella cartella c:\programmi\Izarc trovo sia izarc.exe che izarcc.exe. Può essere questo il problema?

assolutamente no, è corretto

francescodue ha scritto:
2° La stringa esatta che ho usato è la seguente (sorry) da prompt dei comandi (DOS)
vbs-zip-singoli.vbs /I="c:\prova\" /O="c:\prova\" /C=c:\Programmi\IZArc /F= *.igs /S=1 /R=0 /L=1 /M=1
Con questa mi compaiono i due file Elenco.txt e LstComp.txt con l'elenco dei file da usare completi di percorso (c:\prova\pippo.igs ecc.)

corretto

francescodue ha scritto:
Se invece lancio il file vbs da esplora risorse mi fa la stessa cosa, ma i due file di testo (Elenco e LstComp) hanno solo la lista dei nomi senza percorso.

da esplora risorse devi lanciare un collegamento che contenga il percorso dello script e tutti i parametri

francescodue ha scritto:

3° Ho fatto ulteriori prove ed effettivamente non cambia nulla.
4° Al punto due ti ho postato il comando che ho usato.

questo è strano, l'unica cosa che mi viene in mente [ma è un'ipotesi altamente improbabile: internazionalmente lo zip arriva fino a 2GB] è la dimensione dei files da comprimere] farò una prova con files di grosse dimensioni [da 10 a 20 MB]

francescodue ha scritto:

Quindi mi confermi che posso modificare la lista prima della compressione. Quindi volendo potrei aggiungere file diversi all'ultimo momento.
Ti chiedevo dei file temporanei perché pensavo che restassero attivi per tutto il tempo di esecuzione della compressione.

.1 Elenco.txt è prodotto prima della compressione

.2 Ti appare in notepad perché tu lo possa modificare [non ho provato l'aggiunta di files ma se i percorsi e i nomi sono corretti non dovrebbe esserci nessun problema]

.3 Elenco.txt [modificato e salvato oppure lasciato tale e quale] è ripreso in carico dallo script per la compressione

.4 LstComp.txt è il risultato della compressione

.5 terminato lo script i due files sono "liberi"

Embarassed Ho notato [ma forse è un errore di digitazione] che il parametro "/F= *.igs" contiene uno spazio dopo l'uguale prova a controllare [deve essere /F=*.igs]
nel caso lo spazio iniziale non sia filtrato dallo script è un mio errore.
Top
Profilo Invia messaggio privato
francescodue
Dio minore
Dio minore


Registrato: 26/09/08 11:00
Messaggi: 567

MessaggioInviato: 02 Ott 2008 15:06    Oggetto: Rispondi citando

Eccomi ancora.

Adesso funziona.

L'errore era mio: nella stringa del compressore avevo scritto c:\programmi\izarc\izarc invece di c:\programmi\izarc
E faccio in tempo a vedere anche il file temporaneo cmd prima che sparisca.

Adesso però ho due domande.
I file che vengono fuori hanno una doppia estensione (pippo.igs.zip): non che mi dia fastidio, anzi torna utile, ma mi chiedevo se potrebbe dare problemi in futuro. Mi spiego: nel caso dovessi ripetere l'operazione lo script prende l'ultima estensione (cioè .zip) e quindi salta il file oppure vede anche la prima (.igs) e ricomprime il file?
Seconda domanda: quando lancio lo script non ho indicazioni da nessuna parte di quando termina il lavoro. Sono troppo esigente oppure mi è sfuggito qualcosa?.

Per sicurezza farò qualche altro test e poi attacherò l'archivio.
In ogni caso:
GRAZIE MILLE GrayWolf.
E grazie a tutti quelli che mi hanno dato assistenza.
Top
Profilo Invia messaggio privato
francescodue
Dio minore
Dio minore


Registrato: 26/09/08 11:00
Messaggi: 567

MessaggioInviato: 02 Ott 2008 15:31    Oggetto: Rispondi

Rieccomi.
Lo script continua a funzionare.
Ho notato che se non ci sono file .igs (nel mio caso) nella cartella mi compare una finestra di errore. È utile.
E ho provato anche a rilanciare il vbs nella stessa cartella e vede solo i file nuovi, questo solo per scrupolo.
Altra cosa: mi permette di modificare la lista LstComp.txt ma poi processa solo quelli della lista originale che ha trovato, che infatti compare nel file Elenco.txt senza le modifiche. Poco male.
Altra cosa interessante è che vedo le finestre di prompt aprirsi e chiudersi in sequenza mentre processa i file. Per quelli piccoli è una cosa rapidissima mentre per quelli più pesanti resta aperta per più tempo. Se non altro finché è aperta so che sta lavorando.
Ancora grazie.
Top
Profilo Invia messaggio privato
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Software - generale Tutti i fusi orari sono GMT + 2 ore
Vai a Precedente  1, 2, 3  Successivo
Pagina 2 di 3

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi