Autore Topic: Robocopy  (Letto 3112 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline sergran

  • *
  • Post: 48
  • Karma: 0
Robocopy
« il: 14/09/2012, 11:40 »
Cioa, utilizzo il comando Robocopy per eseguire delle copie speculari e avrei bisogno di copiare solo i file modificati in giornata. Non riesco a trovare l'opzione corretta tra MAXAGE, MINAGE, MAXLAD, MINLAD.  Le ho provate tutte ma o mi copiano troppi dati o nessuno. La posto di n ho inserito il numero 1
Cioa grazie

Offline OnePiece

  • Eng2ita Friends
  • **
  • Post: 6.114
  • Karma: -3277
Re: Robocopy
« Risposta #1 il: 14/09/2012, 21:29 »
Lo ai gia in mano il script che ti serve http://www.eng2ita.net/forum/index.php/topic,7910.msg59982.html#new

vedo che non ci sei arrivato da te, non ti serviva più il Robocopy, il script fa proprio quello che volevi tu li, che vole dire e in grado aggiornare le file secondo ultima modifica, ma solo lavorava dentro la cartella %Destinazione%, appunto o detto prima vedo che non ci sei arrivato da te perché il gioco era fato li, ti serviva solo cambiare destinazione dove il script leggeva i file ed e andata, che vole dire il script leggeva in %Destinazione%\aaa.txt file e dopo guardava se cera bisogno aggiornare il %Destinazione%\aaa.txt.7z, cosi tu solo dovevi indicare al script di controllare le file in %Sourse%\* ed era fato, esempio

Codice: [Seleziona]
@echo off
SET ZEXE="D:\7-Zip\7z.exe"
::SET ZEXE="%ProgramFiles%\7-Zip\7z.exe"
SET WorkDir="C:\WDB"
SET ArchiveDir="D:\Lavoro_da_criptare\WDB"


@for /F "tokens=1 delims=, " %%i In ('powershell date') do set dow=%%i
set dow=%dow:~0,3%
echo  Backup del giorno %dow%
if %dow%==mar call :StartBackUp
Goto EXIT

:StartBackUp
CD /D %WorkDir%
SET WFTMP="%TEMP%\_TMP.txt"
SET WDP=%WorkDir:"=%
FOR /R %WorkDir% %%G IN (*.*) DO (
call :CheckFile "%%G" "%%~tG" "%%~dpnxG.7z"
)
call :CheckArchive
DEL /Q/F %WFTMP%
Goto EXIT

:CheckFile
SET WF=%3
CALL SET WF=%%WF:%WDP%=%%
SET WF="%ArchiveDir:"=%%WF:"=%"
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 %WF% >%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: =%
IF NOT EXIST %WF% Set LETF=NONE
:: 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 %WF%
%ZEXE% a %WF% %1 -mx -pPASSWORD
)
Goto eof

:CheckArchive
SET AFP=%ArchiveDir:"=%
FOR /R %ArchiveDir% %%G IN (*.7z) DO (
call :CleanUp "%%G" "%%~dpnG"
)
Goto eof

:CleanUp
SET WF=%2
CALL SET WF=%%WF:%AFP%=%%
SET WF="%WorkDir:"=%%WF:"=%"
IF NOT EXIST %WF% DEL /Q/F %1
Goto eof

:EXIT
Goto eof

Comunque non dimenticare mai di fare sempre un backup di tutti file\documenti prima di testare il script o ogni altra cosa, visto che basta un piccolo sbaglio in script e ti cancella documenti che potranno essere importanti ect ect, cosi non dimenticare mai fai sempre un BackUp di tutti i file prima di eseguire ogni tipo di test ect ect

Ciao.
« Ultima modifica: 14/09/2012, 23:14 da OnePiece »
   

Offline sergran

  • *
  • Post: 48
  • Karma: 0
Re: Robocopy
« Risposta #2 il: 16/09/2012, 09:05 »
Cavolo.... hai ragione......   :-[
vorrei aggiungere alle opzioni la verifica della compressione ma se inserisco l'opzione "t" mi dice che il file non è riconosciuto....