chcp 65001 > nul
@echo [32;43mStart Copy Project in Local[0m
set listfiles=GitCopy.txt
set listfilesBak=GitCopy.bak
git fetch
git status --short > %listfilesBak%
(for /f "tokens=1,* usebackq" %%a in ("%listfilesBak%") do @echo %%b)>"%listfiles%"
@remove %listfilesBak%
Setlocal EnableDelayedExpansion
CHCP 1251
CLS
@echo off
SetLocal EnableExtensions
set source=%cd%
set curdir=%cd%
echo %curdir% CD!
set datetime=%date%_%TIME:~0,2%.%TIME:~3,2%.%TIME:~6,2%
set branch_dirOrig=%curdir%\temp\%datetime%
set branch_dir="%branch_dirOrig%"IF not exist %branch_dir% (mkdir %branch_dir%)
IF not exist "%branch_dirOrig%\ALL_FILES" (mkdir "%branch_dirOrig%\ALL_FILES")
cd /d %branch_dir%
SET find=/
SET replace=\
for /f "usebackq delims=" %%i in ("%curdir%\%listfiles%") do (
rem echo %%i | findstr "GitCopy" > NUL
echo %%i | findstr /i /c:"GitCopy" /c:".git" /c:"temp" /c:".vscode" > NUL
IF NOT ERRORLEVEL 1 (
echo"пропуск ~" > NUL
)
IF ERRORLEVEL 1 (
set "str=%%i"
call set str=%%str:%find%=%replace%%%
set "target=%branch_dirOrig%\!str!"echo [1;34m"Copy File: !str!"[0m
rem Создаём все подпапки для целевого файла
for %%a in ("!target!") do set "target_dir=%%~dpa"if not exist "!target_dir!" mkdir "!target_dir!"
rem ### / РЕКУРСИЯ ДЛЯ /ALL_FILES с ренейм _ \ ###
set "flatname=!str!"
set "checkdir=!source!\!str!"
set "checkdir=!checkdir:/=\!"if"!checkdir:~-1!"=="\" set "checkdir=!checkdir:~0,-1!"
if exist "!checkdir!\" (
echo [32;43mDIR GO: %source%\!str![0m
set "subdir=!str!"
if "!subdir:~-1!"=="\" set "subdir=!subdir:~0,-1!"
pushd "%source%"
for /f "delims=" %%F in ('dir /s /b "!subdir!" 2^>nul') do (
set "full=%%F"
set "rel=!full:%source%\=!"
set "flatname=!rel:\=_!"
echo [32;43mFLATNAME: !flatname![0m
copy /Y "%%F" "%branch_dirOrig%\ALL_FILES\!flatname!" >nul
)
popd
) else if exist "!checkdir!" (
echo [32;43mFILE GO: %source%\!str![0m
set "flatname=!flatname:\=_!"
echo [32;43mFLATNAME: !flatname![0m
copy /Y "%source%\!str!" "%branch_dirOrig%\ALL_FILES\!flatname!" >nul
) else (
echo [32;43mSOURCE NO: %source%\!str![0m
)
rem ### \ РЕКУРСИЯ ДЛЯ /ALL_FILES с ренейм _ / ###
echo f|xcopy "%source%\!str!" "!target!"
)
)
cd /d "%curdir%"
@echo on
@echo [32;34mDONE! %datetime% PATH: %branch_dir%[0m
@pauseCode language:PHP(php)