@ECHO OFF
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
REMREMREMREMREMREM
IF NOT EXIST "%~4" GOTO :EOF
SET __DepBaseSrcDir=%~1
SET __DepBaseOutDir=%~2
SET __DepBaseOutDirName=%~3
SET __DepFileList=%~4
FOR /F "eol=# tokens=1,2 delims=;" %%A IN (!__DepFileList!) DO (
SET __DepSrcRel=%%~A
SET __DepDstRel=%%~B
CALL :TrimEx " " __DepSrcRel __DepDstRel
IF NOT "!__DepSrcRel!" EQU "" (
SET __DepSrc=!__DepBaseSrcDir!!__DepSrcRel!
IF "!__DepDstRel:~0,1!" EQU "@" (
SET __DepDstRel=!__DepDstRel:~1!
SET __DepDst=!__DepBaseOutDir!!__DepDstRel!!__DepBaseOutDirName!
IF NOT EXIST "!__DepDst!" MKDIR "!__DepDst!"
XCOPY "!__DepSrc!" "!__DepDst!" /S /Y /I
) ELSE (
SET __DepDst=!__DepBaseOutDir!!__DepDstRel!
IF "!__DepDst:~-1!" EQU "\" (
IF NOT EXIST "!__DepDst!" MKDIR "!__DepDst!"
XCOPY "!__DepSrc!" "!__DepDst!" /S /Y /I
) ELSE (
COPY /Y "!__DepSrc!" "!__DepDst!"
)
)
)
)
REMREMREMGOTO :EOF
REM:GetDir
SET _GD=%~dp1
GOTO :EOF
REM:GetFName
SET _FD=%~nx1
GOTO :EOF
REMREMREM:TrimEx
CALL :TrimExL %*
CALL :TrimExR %*
GOTO :EOF
REMREMREM:TrimExL
SET _W0=!%2!
IF DEFINED _W0 (
SET _W1="!_W0:~0,1!"
IF !_W1! EQU "%~1" (
SET %2=!_W0:~1!
GOTO TrimExL
)
)
SHIFT /2
IF "%2" NEQ "" GOTO TrimExL
GOTO :EOF
REMREMREM:TrimExR
SET _W0=!%2!
IF DEFINED _W0 (
SET _W1="!_W0:~-1!"
IF !_W1! EQU "%~1" (
SET %2=!_W0:~0,-1!
GOTO TrimExR
)
)
SHIFT /2
IF "%2" NEQ "" GOTO TrimExR
GOTO :EOF