Autore Topic: Compressione file usando la riga di comando  (Letto 45711 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline OnePiece

  • Eng2ita Friends
  • **
  • Post: 6.114
  • Karma: -3277
Re: Compressione file usando la riga di comando
« Risposta #30 il: 12/09/2012, 16:32 »
Prova in questo modo (serve improvvisare li, e un script come dire, ce ne sono migliaia i modi come fare una cosa)
Codice: [Seleziona]
@echo off
@for /F "tokens=1 delims=, " %%i In ('powershell date') do set dow=%%i
set dow=%dow:~0,3%
set source=C:\WDB
set destin=D:\Lavoro_da_criptare\WDB
echo  Backup del giorno %dow%
if %dow%==mar call :StartBackUp
Goto EXIT

:StartBackUp
start /wait robocopy "%source%" "%destin%" /MIR"
FOR /R "D:\prova" %%G IN (*.*) DO (
"D:\7-Zip\7z.exe" a "%%~dpnxG.7z" "%%G" -v50m -mx=9 -ms=on -mhe=on -pPASSWORD)
)
Goto EXIT

:EXIT
Goto eof

Ciao.
« Ultima modifica: 13/09/2012, 23:32 da MISTER X ® »
   

Offline sergran

  • *
  • Post: 48
  • Karma: 0
Re: Compressione file usando la riga di comando
« Risposta #31 il: 12/09/2012, 16:39 »
EVVVVVVVAAAAAAAAAAAAAAAAAAAAAAAAIIIIIIIIIIIIIIIIIIIIIIIIIIIIII.......................................... :D ;D :-* :ap59: ;) :D
« Ultima modifica: 13/09/2012, 23:32 da MISTER X ® »

Offline sergran

  • *
  • Post: 48
  • Karma: 0
Re: Compressione file usando la riga di comando
« Risposta #32 il: 13/09/2012, 08:04 »
Ciao, avrei un'esigenza.... quando effettuo il comando per la compressione / crittografia
@echo off
@for /F "tokens=1 delims=, " %%i In ('powershell date') do set dow=%%i
set dow=%dow:~0,3%
if %dow%==gio call :StartBackUp
Goto EXIT
:StartBackUp
FOR /R "D:\lavoro_da_criptare" %%G IN (*.*) DO (
"D:\7-Zip\7z.exe" a "%%~dpnxG.7z" "%%G" -v50m -mx=2 -ms=on -mhe=on -pilavits)
)
Goto EXIT
:EXIT

avrei bisogno che se il file esite ed è stato modificato venisse aggiornato l'archivio corrispondete, mentre se il file viene eliminato, dovrebbe essere eliminato anche l'archivio
Ho provato ad inserire nel codice le opzioni "d t tu" ma mi dice che il file t - d - u non esiste
Io le ho inserite così ( cercando di capire la sintassi che mi avevi fornito in ua precedente risposta

@echo off
@for /F "tokens=1 delims=, " %%i In ('powershell date') do set dow=%%i
set dow=%dow:~0,3%
if %dow%==gio call :StartBackUp
Goto EXIT
:StartBackUp
FOR /R "D:\lavoro_da_criptare" %%G IN (*.*) DO (
"D:\7-Zip\7z.exe" a t d u "%%~dpnxG.7z" "%%G" -v50m -mx=2 -ms=on -mhe=on -pilavits)
)
Goto EXIT
:EXIT
GRAZIE
« Ultima modifica: 13/09/2012, 23:32 da MISTER X ® »

Offline OnePiece

  • Eng2ita Friends
  • **
  • Post: 6.114
  • Karma: -3277
Re: Compressione file usando la riga di comando
« Risposta #33 il: 13/09/2012, 13:16 »
Ciao sergran, non ce niente che non si fa anche con un file CMD ma purtroppo quelli che la conoscano bene o la sano usare bene hanno direi 10 anni e di piu che non la usano piu, oggi il file cmd si usa solo cosi per cose veloci e non per creare programmi
perché file CMD e cosi semplice ma e cosi vecchio e chi mai la usa piu diciamo, per fare cose complicate oggi viene più facile scrivere in AutoIt o altro

di più o notato che le tue conoscenze al riguardo sono poche (io so solo un po di piu di te al riguardo, voglio dire nemmeno io conosco bene argomento in questione), cosi e quasi impossibile riuscire scrivere un codice in caso che almeno non consci le basi di quello lingua di programmazione o del funzionamento di quello script che dovrai scrivere, voglio dire che quello che stai tentando di fare e un missione impossibile hmmmm (e non per te ma per chiunque, tentare fare con file CMD certi cose)

Ciao.
« Ultima modifica: 13/09/2012, 23:32 da MISTER X ® »
   

Offline sergran

  • *
  • Post: 48
  • Karma: 0
Re: Compressione file usando la riga di comando
« Risposta #34 il: 13/09/2012, 14:07 »
Nessun problema... sei stato molto gentile e molto utile oltre che MOLTO PAZIENTE
Grazie 1000
Cioa
« Ultima modifica: 13/09/2012, 23:32 da MISTER X ® »

Offline OnePiece

  • Eng2ita Friends
  • **
  • Post: 6.114
  • Karma: -3277
Re: Compressione file usando la riga di comando
« Risposta #35 il: 13/09/2012, 14:18 »
Comunque per cancellare archivi potrai usare un casa semplice (il LOOP contrario), dovrà essere una cosa cosi più o meno

Codice: [Seleziona]
@echo off
@for /F "tokens=1 delims=, " %%i In ('powershell date') do set dow=%%i
set dow=%dow:~0,3%
set source=C:\WDB
set destin=D:\Lavoro_da_criptare\WDB
echo  Backup del giorno %dow%
if %dow%==mar call :StartBackUp
Goto EXIT

:StartBackUp
start /wait robocopy "%source%" "%destin%" /MIR"
FOR /R "D:\lavoro_da_criptare" %%G IN (*.*) DO (
"D:\7-Zip\7z.exe" a "%%~dpnxG.7z" "%%G" -v50m -mx=9 -ms=on -mhe=on -pPASSWORD
)
call :CheckFile
Goto EXIT

:CheckFile
FOR /R "D:\lavoro_da_criptare" %%G IN (*.*.7z) DO (
IF NOT EXIST "%%~dpnG" DEL "%%G")
Goto EXIT

:EXIT
Goto eof


Ciao.
« Ultima modifica: 13/09/2012, 23:33 da MISTER X ® »
   

Offline sergran

  • *
  • Post: 48
  • Karma: 0
Re: Compressione file usando la riga di comando
« Risposta #36 il: 13/09/2012, 14:27 »
E' perfetto.... mi hai risolto il problema!!!!!! Evviva.....!!!!!! Sei un  :angel:
Posso chiederti solo + una cosa? Poi non ti stresso + promesso.....  ;)

Ogni volta che rifaccio partire il processo di compressione, anche use il file non è stato modificato, viene ricompresso e cambia la data di modifica. Questo mi crea problemi eprchè tuutti questi file andrebbero caricati in un cloud tramite una cartella sincronizzata, e avendo una banda limitata a 10 Gb akl mese, mi consuma tutta i Gb. Sarebbe possibile fare in modo che se il file non vengono modifiati,non vengano compressi ad ogni esecuzione del bat?

Se è troppo lunga la modifica o altro lascia perdere... già così il comando è perfetto!!!!!
« Ultima modifica: 13/09/2012, 23:33 da MISTER X ® »

Offline OnePiece

  • Eng2ita Friends
  • **
  • Post: 6.114
  • Karma: -3277
Re: Compressione file usando la riga di comando
« Risposta #37 il: 13/09/2012, 18:54 »
Posso chiederti solo + una cosa? Poi non ti stresso + promesso.....  ;)
Non mi stressi, semplicemente non sono cosi bravo quando tu pensa, voglio dire non e che lo so fare ed e solo questione di trovare tempo scrivere il script, e quello che e più importante non o tempo per davvero per seguire o fare certi cose

comunque ecco
Codice: [Seleziona]
@echo off
SET ZEXE="D:\7-Zip\7z.exe"
::SET ZEXE="C:\Program Files\7-Zip\7z.exe"
SET WFTMP="%TEMP%\_TMP.txt"
@for /F "tokens=1 delims=, " %%i In ('powershell date') do set dow=%%i
set dow=%dow:~0,3%
set source=C:\WDB
set destin=D:\Lavoro_da_criptare\WDB
echo  Backup del giorno %dow%
if %dow%==mar call :StartBackUp
Goto EXIT

:StartBackUp
start /wait robocopy "%source%" "%destin%" /MIR"
FOR /R "D:\lavoro_da_criptare" %%G IN (*.*) DO (
  IF /I NOT "%%~xG"==".7z" call :CheckFile "%%G" "%%~tG" "%%~dpnxG.7z"
)
call :CheckArchive
DEL /Q/F %WFTMP%
Goto EXIT

:CheckFile
SET WFTX=%2
SET WFT=%WFTX:~7,4%%WFTX:~1,2%%WFTX:~4,2%
SET WFTX1=%WFTX:~12,2%
IF %WFTX:~18,2% == PM (
setLocal EnableDelayedExpansion
SET /A WFTX1+=12
setLocal DisableDelayedExpansion
)
SET WFT=%WFT%%WFTX1%%WFTX:~15,2%
%ZEXE% l %3 >%WFTMP%
setLocal EnableDelayedExpansion
FOR /F "usebackq tokens=1,2 skip=16 delims=:" %%M IN (%WFTMP%) DO (
set /a RF+=1
set LETF!RF!=%%M%%N)
Set LETF
setLocal DisableDelayedExpansion
Set LETF=%LETF1:-=%
Set LETF=%LETF: =%
:: formato e Anno Messe Giorno Ora Minuti, esempio 201209131930, vole dire se la modificazione
:: del file cambia solo con secondi, allora il script non la può conoscere per aggiornare dopo il archivio
IF NOT "%LETF%"=="%WFT%" (
DEL /Q/F %3
%ZEXE% a %3 %1 -mx -pPASSWORD
)
Goto eof

:CheckArchive
FOR /R "D:\lavoro_da_criptare" %%G IN (*.7z) DO (
IF NOT EXIST "%%~dpnG" DEL /Q/F "%%G"
)

:EXIT
Goto eof

Riguardo la compressione usato solo il "-mx", Best compression from command line (Igor Pavlov dice meglio un comando semplice come -mx)

CIAO.

@Staf
questo topic forse e meglio spostarlo qui http://www.eng2ita.net/forum/index.php/board,31.0.html e cambiare il titolo in qualche cosa come Compressione file usando la riga di commando ect ect che ne so
« Ultima modifica: 13/09/2012, 23:33 da MISTER X ® »
   

Offline sergran

  • *
  • Post: 48
  • Karma: 0
Re: Compressione file usando la riga di comando
« Risposta #38 il: 13/09/2012, 20:29 »
Funziona!!!!!!  :D ;D ;) :) :ap59: :-* :P
GRAZIE
« Ultima modifica: 13/09/2012, 23:33 da MISTER X ® »

Offline GiacomoBZ

  • Full Member
  • ***
  • Post: 239
  • Karma: -2
Re: Compressione file usando la riga di comando
« Risposta #39 il: 14/09/2012, 19:13 »
Ho un atroce dubbio che mi assale da diverso tempo.  :-\
Ma OnePiece è sicuro un terrestre?!  :-X
Secondo me col cervello che ha viene de qualche lontana galassia, e si è insediato tra noi terrestri, sms!!! (sotto mentite spoglie)  ;)

 

Pubblicità: