tomasz86 Posted July 11, 2012 Author Posted July 11, 2012 (edited) Thanks, dencorso I'll try it out as soon as possible.I've prepared an updated/fixed version of the script I posted above:@ECHO OFFSETLOCAL ENABLEDELAYEDEXPANSIONSET SOURCEDIR=SET DESTINATIONDIR=IF EXIST "%DESTINATIONDIR%" ( FOR /F %%I IN ('DIR/A-D/B "%SOURCEDIR%"') DO ( IF EXIST "%DESTINATIONDIR%\%%I" ( FOR /F "tokens=5" %%J IN ('FILEVER "%SOURCEDIR%\%%I"') DO IF NOT "%%J"=="-" ( FOR /F "tokens=5" %%J IN ('FILEVER "%SOURCEDIR%\%%I"') DO SET SOURCEVER=%%J FOR /F "tokens=5" %%J IN ('FILEVER "%DESTINATIONDIR%\%%I"') DO SET DESTINATIONVER=%%J FOR /F "tokens=1-4 delims=." %%I IN ("!SOURCEVER!") DO ( SET SOURCEVER1=%%I SET SOURCEVER2=%%J SET SOURCEVER3=%%K SET SOURCEVER4=%%L ) FOR /F "tokens=1-4 delims=." %%I IN ("!DESTINATIONVER!") DO ( SET DESTINATIONVER1=%%I SET DESTINATIONVER2=%%J SET DESTINATIONVER3=%%K SET DESTINATIONVER4=%%L ) IF !SOURCEVER! EQU !DESTINATIONVER! ( XCOPY/DY "%SOURCEDIR%\%%I" "%DESTINATIONDIR%" >NUL FOR /F %%J IN ('XCOPY/DY "%SOURCEDIR%\%%I" "%DESTINATIONDIR%" ^| FIND "0"') DO IF !ERRORLEVEL! NEQ 0 ECHO %SOURCEDIR%\%%I DEL/Q "%SOURCEDIR%\%%I" ) IF EXIST "%SOURCEDIR%\%%I" IF !SOURCEVER1! GTR !DESTINATIONVER1! ( MOVE/Y "%SOURCEDIR%\%%I" "%DESTINATIONDIR%" >NUL ECHO %SOURCEDIR%\%%I ) IF EXIST "%SOURCEDIR%\%%I" IF NOT !DESTINATIONVER1! GTR !SOURCEVER1! IF !SOURCEVER2! GTR !DESTINATIONVER2! ( MOVE/Y "%SOURCEDIR%\%%I" "%DESTINATIONDIR%" >NUL ECHO %SOURCEDIR%\%%I ) IF EXIST "%SOURCEDIR%\%%I" IF NOT !DESTINATIONVER1! GTR !SOURCEVER1! IF NOT !DESTINATIONVER2! GTR !SOURCEVER2! IF !SOURCEVER3! GTR !DESTINATIONVER3! ( MOVE/Y "%SOURCEDIR%\%%I" "%DESTINATIONDIR%" >NUL ECHO %SOURCEDIR%\%%I ) IF EXIST "%SOURCEDIR%\%%I" IF NOT !DESTINATIONVER1! GTR !SOURCEVER1! IF NOT !DESTINATIONVER2! GTR !SOURCEVER2! IF NOT !DESTINATIONVER3! GTR !SOURCEVER3! IF !SOURCEVER4! GTR !DESTINATIONVER4! ( MOVE/Y "%SOURCEDIR%\%%I" "%DESTINATIONDIR%" >NUL ECHO %SOURCEDIR%\%%I ) ) ELSE ( XCOPY/DY "%SOURCEDIR%\%%I" "%DESTINATIONDIR%" >NUL FOR /F %%J IN ('XCOPY/DY "%SOURCEDIR%\%%I" "%DESTINATIONDIR%" ^| FIND "0"') DO IF !ERRORLEVEL! NEQ 0 ECHO %SOURCEDIR%\%%I ) ) ELSE ( MOVE "%SOURCEDIR%\%%I" "%DESTINATIONDIR%" >NUL IF !ERRORLEVEL! EQU 0 ECHO %SOURCEDIR%\%%I ) )) ELSE ( MD %DESTINATIONDIR% COPY %SOURCEDIR%\*.* %DESTINATIONDIR% >NUL FOR /F %%I IN ('DIR/A-D/B %SOURCEDIR%') DO ECHO %SOURCEDIR%\%%I)PAUSEBe careful because this one actually moves some of the files. Edited July 11, 2012 by tomasz86
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now