Precedente :: Successivo |
Autore |
Messaggio |
GrayWolf Dio maturo


Registrato: 03/07/05 17:24 Messaggi: 2325 Residenza: ... come frontiera i confini del mondo...
|
Inviato: 02 Ott 2008 15:50 Oggetto: |
|
|
francescodue ha scritto: | 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. |
francescodue ha scritto: | 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?
|
L'estensione originale, l'ho appositamente lasciata perché rimanga traccia del nome completo originale
No, se nella cartella c'è un file yyy.igs.zip, dopo la compressione
[con /I=XXX e /O=XXX e /R=0] ti troveresti due files:
yyy.igs.zip e yyy.igs.zip.zip
tre, se la prima compressione aveva gli stessi parametri [yyy.igs yyy.igs.zip yyy.igs.zip.zip]
inoltre: se il filtro è *.igs nella seconda compressione lui tratterà solo i files con quella estensione ignorando quelli con estensione .zip, ma... se per caso fosse presente un nome uguale [non ho mai provato] non so se IZARCC aggiunge o sovrappone [all'esecuzione di IZARCC io non associo il parametro -a quindi non ho ancora sperimentato cosa succeda]
francescodue ha scritto: | 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 attaccherò l'archivio. |
No, non sei troppo esigente, anzi, le tue domande mi hanno spinto a rivedere lo script trovando alcune imprecisioni, a presto posterò la nuova versione [che comprenderà anche l'avviso di fine lavoro] con le correzioni del caso, niente di importante ma è meglio essere precisi
francescodue ha scritto: |
In ogni caso:
GRAZIE MILLE GrayWolf.
E grazie a tutti quelli che mi hanno dato assistenza. |
de nada hombre
ah, ultima cosa:
se lanci lo script da operazioni pianificate il messaggio di fine lavoro rimarrebbe in attesa di risposta [come succederebbe se i flags /A e /L fossero = 1 per il lavoro lanciato a esempio di notte]... vabbè istituirò un flag anche per quello  |
|
Top |
|
 |
GrayWolf Dio maturo


Registrato: 03/07/05 17:24 Messaggi: 2325 Residenza: ... come frontiera i confini del mondo...
|
Inviato: 02 Ott 2008 19:00 Oggetto: |
|
|
francescodue ha scritto: | 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. |
Grazie a te di essere stato il mio beta-tester .
Nel prossimo post inserisco la nuova versione dello script e del manualetto con l'indicazione delle modifiche apportate. |
|
Top |
|
 |
GrayWolf Dio maturo


Registrato: 03/07/05 17:24 Messaggi: 2325 Residenza: ... come frontiera i confini del mondo...
|
Inviato: 02 Ott 2008 19:51 Oggetto: |
|
|
Ecco la nuova versione dello script.
Modifiche apportate:
Citazione: |
- Aggiunto il flag /E per il messaggio di fine lavoro
- Impostato lo script per funzionare in modalità neutra
leggere la parte !!!!!!!!!!!!! IMPORTANTE !!!!!!!!!!!!!! [nella "PERSONALIZZAZIONE"]
- Istituito il log di compressione
- sistemato il refuso: esposto LstComp. txt ma poi rilevato Elenco.txt
- ampliato il trattamento del filtro [eliminati spazi di testa e coda e doppie virgolette]
- messaggio e chiusura del lavoro se non trovato nessun file con l'estensione indicata nel filtro
- aggiornato il manualetto
|
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 [commandline] *
'* programma gratuito per la compressione da linea comando *
'* scaricabile dal sito: http://www.izarc.org *
'* l'eseguibile con la GUI [anch'esso scaricabile] *
'* può costituire una valida alternativa ad altri compressori *
'* *
'* 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
sFiltro = ""
'* ------------------------------------------------------------
'*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
'*!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANTE !!!!!!!!!!!!!!!!!!!!!!!!!
'*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
'*
'* lo script, nella sua forma originale, imposta i valori sot-
'* tostanti con le doppie virgolette come se dovesse essere ri-
'* chiamato in modalità neutra.
'* Qualora si volessero preimpostare i valori [modalità mista]
'* le parole true o false devono essere scritte SENZA essere
'* racchiuse tra doppie virgolette [come negli esempi riportati]
'*
'*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
'* ------------------------------------------------------------
'* 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 = ""
'* ------------------------------------------------------------
'* ------------------------------------------------------------
'* 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 = ""
'* ------------------------------------------------------------
'* ------------------------------------------------------------
'* 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 avvierà immediatamente
'* bChiediConfermaParametri = true '--> dopo la rilevazione dei parametri, lo
'* script ne esporrà i valori e chiederà
'* l'autorizzazione all'esecuzione
bChiediConfermaParametri = ""
'* ------------------------------------------------------------
'* ------------------------------------------------------------
'* 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 = ""
'* ------------------------------------------------------------
'* ------------------------------------------------------------
'* 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 = ""
'* ------------------------------------------------------------
'* ------------------------------------------------------------
'* ESPOSIZIONE MESSAGGIO di fine lavoro
'* ------------------------------------------------------------
'*
'* indicare se lo script deve esporre il messaggio quando ha
'* terminato il suo lavoro
'*
'* esempio:
'* bMessFineLavoro = false '--> l'esecuzione termina SENZA messaggio
'* bMessFineLavoro = true '--> l'esecuzione termina con un messaggio
'* che attende la risposta
bMessFineLavoro = ""
'* ------------------------------------------------------------
'* =============================================================================
'* =========================================================
'* 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
dim bMessFineLavoro
'* ------------------------------------
'* =========================================================
'* fine DICHIARAZIONE delle VARIABILI
'* =========================================================
'* =========================================================
'* MAIN LINE
'* =========================================================
impoOggetti
rilevaParametri
impoParametri
ctrlPersonalizzazione
sList = ListaContenuti(sPercorsoOrigine)
expoLista
execCompressione
if bMessFineLavoro then
sMsg = "Il lavoro è terminato"
lIco = vbInformation
sTit = "AVVISO"
msgbox sMsg,lIco,sTit
end if
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" 'muove 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)
case "/E" 'messaggio di fine lavoro
bMessFineLavoro = 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
sFiltro=trim(sFiltro)
sFiltro=replace(sFiltro,"""","")
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"
bChiediConfermaParametri = 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
if not bMessFineLavoro = false _
and not bMessFineLavoro = true then
sMsg = "Immettere come lo script deve" _
& string(2,vblf) _
& "emettere il MESSAGGIO di FINE LAVORO" _
& string(3,vblf) _
& "0 = il lavoro termina SENZA messaggio" _
& string(2,vblf) _
& "1 = i il lavoro termina CON messaggio " _
& vblf
do
bMessFineLavoro = Richiesta(sMsg)
loop until bMessFineLavoro = "0" or bMessFineLavoro = "1"
bMessFineLavoro = cbool(bMessFineLavoro * -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(2,vblf) _
& "Messaggio di fine lavoro : " & bMessFineLavoro _
& 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
dim bErr
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
if oFSO.getFile(ScriptPath & "Elenco.txt").size = 0 then
'* non è stato ntrovato nessun file
'* con il filtro specificato
sMsg = "Con filtro =" _
& sFiltro _
& string(2,vblf) _
& "NESSUN FILE TROVATO" _
& string(2,vblf) _
& "Lo script Termina"
lIco = vbCritical
sTit = "ERRORE"
msgbox sMsg,lIco,sTit
bErr = true
else
'* legge il file prodotto
sLista = readFile(sScriptPath & "Elenco.txt")
end if
sTmp = replace(sTmp,"""","")
oFSO.DeleteFile sTmp, true
if bErr then
WScript.quit
end if
'* restituisce
ListaContenuti = sLista
end function
'* =========================================================
sub expoLista
Set oFile = oFSO.CreateTextFile(sScriptPath & "LstComp.txt", True)
oFile.Write sList
oFile.Close
Set oFile = Nothing
if bExpoLista then
'* richiama e attende
Return = oShell.Run("notepad " & sScriptPath & "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 sLog
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 & "LstComp.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
'* log di compressione
sLog = sLog _
& FormatDateTime(now,0) _
& " - " _
& avCont(f) _
& " ---> " _
& sPathTmp _
& sPathFile _
& ".zip" _
& vbnewline
end if
next
if len(trim(sLog)) > 0 then
Set oFile = oFSO.CreateTextFile(sScriptPath & _
sScriptName & _
"_Log.txt"_
, True _
)
oFile.Write sLog
oFile.Close
Set oFile = Nothing
end if
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
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.
Espone la lista dei files rilevati e ne permette la modifica
S'interfaccia con IZARCC.exe per effettuare la compressione.
Comprime i files singolarmente.
Produce un log del lavoro eseguito.
Cosa [ancora] non fa
NON comprime i files in un unico zip
Negli zip prodotti, NON sono memorizzati i percorsi né assoluto né relativo
NON riproduce la struttura delle sottocartelle di origine nella cartella di destinazione [quando diversa dall'origine]
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,
[ed eventuali sottocartelle] trasferendoli nella cartella_B,
dalla quale poi saranno trasferiti 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 "" [due doppie virgolette consecutive]
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]
/E=emissione messaggio a lavoro terminato [numero 0 o 1]
I valori dei 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 /A=1 /E=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 compressi nella cartella di destinazione
Espone il messaggio di fine lavoro
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]
Note di particolare interesse:
- I parametri associati al richiamo si "sovrappongono" a quelli predefiniti, ma SOLO per la sessione di richiamo.
- Se nella destinazione il file compresso esiste già con lo stesso nome, il compressore NON effettua la compressione dell'origine attuale
- Alla fine del lavoro nella cartella dello script saranno presenti tre files:
- Elenco.txt : elenco dei i files rilevati
- LstComp.txt : lista prodotta con il notepad, modificabile secondo le esigenze con aggiunta o cancellazione di righe
[se modificata sarà diversa da Elenco.txt]
- nomescript_Log.txt : elenco dei file compressi con data e ora di compressione
|
Per tutto il resto... valgono le considerazioni nei post precedenti e...
ancora grazie a francescodue per il beta-test 
L'ultima modifica di GrayWolf il 03 Ott 2008 18:13, modificato 1 volta |
|
Top |
|
 |
francescodue Dio minore

Registrato: 26/09/08 11:00 Messaggi: 567
|
Inviato: 03 Ott 2008 16:07 Oggetto: |
|
|
Eccomi di nuovo.
Ho prelevato il nuovo script, però mi rimanda questo messaggio di errore:
Riga: 588
Carattere: 12
Errore: prevista istruzione
Codice: 800A0400
Origine: errore di compilazione di Microsoft VBScript.
A questo punto chiudo la finestra del messaggio e non succede niente.
Devo aggiornare qualcosa del Windows? |
|
Top |
|
 |
GrayWolf Dio maturo


Registrato: 03/07/05 17:24 Messaggi: 2325 Residenza: ... come frontiera i confini del mondo...
|
Inviato: 03 Ott 2008 18:09 Oggetto: |
|
|
francescodue ha scritto: |
...
Devo aggiornare qualcosa del Windows?
|
No, assolutamente no.
#ç@°*!+[#@]^!!! [parolacce]
è colpa del copia incolla nel post...
[e mia che non ho controllato riga per riga]
apri, con notepad, il nuovo script
cerca questo
Codice: |
'* non è stato ntrovato nessun file
'* con il filtro specificato
sMsg = "Con filtro =" _
& sFiltro _
& string(2,vblf) _
& "NESSUN FILE TROVATO" _
& string(2,vblf) _
& "Lo script Termina"
|
e togli quella maledetta riga bianca
in modo che risulti:
Codice: | '* non è stato trovato nessun file
'* con il filtro specificato
sMsg = "Con filtro =" _
& sFiltro _
& string(2,vblf) _
& "NESSUN FILE TROVATO" _
& string(2,vblf) _
& "Lo script Termina"
|
dopo di che l'errore non si presenta più
[ho copia/incollato dal post, ho eseguito e mi ha dato lo stesso errore, tolta la riga bianca, l'errore è sparito]
ah, intanto che ci sei correggi anche il commento [se ti va ]
ntrovato ---> trovato
3.10.2008-18.15 [per la cronaca: il post l'ho corretto io] |
|
Top |
|
 |
francescodue Dio minore

Registrato: 26/09/08 11:00 Messaggi: 567
|
Inviato: 03 Ott 2008 18:15 Oggetto: |
|
|
Eccomi.
Ho corretto secondo le tue indicazioni e tutto funziona a meraviglia.
Sei un grande.
Grazie ancora GrayWolf. |
|
Top |
|
 |
GrayWolf Dio maturo


Registrato: 03/07/05 17:24 Messaggi: 2325 Residenza: ... come frontiera i confini del mondo...
|
Inviato: 03 Ott 2008 18:26 Oggetto: |
|
|
francescodue ha scritto: | Eccomi.
...
Grazie ancora GrayWolf. |
ancora de nada, hombre,
es un placer  |
|
Top |
|
 |
|
|
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
|
|