chcp 65001 > nul
@echo Start Copy Project in Local
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 "Copy File: !str!"

		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 DIR GO: %source%\!str!
			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 FLATNAME: !flatname!
				copy /Y "%%F" "%branch_dirOrig%\ALL_FILES\!flatname!" >nul
			)
			popd			
		) else if exist "!checkdir!"  (
			echo FILE GO: %source%\!str!
			set "flatname=!flatname:\=_!"
			echo FLATNAME: !flatname!
			copy /Y "%source%\!str!" "%branch_dirOrig%\ALL_FILES\!flatname!" >nul
		) else (
			echo SOURCE NO: %source%\!str!
		)
		rem ### \ РЕКУРСИЯ ДЛЯ /ALL_FILES с ренейм _ / ###
		
		echo f|xcopy "%source%\!str!" "!target!"
	)
)
cd /d "%curdir%"
@echo on
@echo DONE! %datetime% PATH: %branch_dir%
@pauseCode language: PHP (php)

От admin

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *