该批处理文件适用场景: windows+git
@echo off
setlocal enabledelayedexpansion
set "dest_dir=D:\xxx\xxx"
set "src_dir=%cd%"
set "file_name=update-%date:~0,4%%date:~5,2%%date:~8,2%"
set "upd_dir=%dest_dir%\%file_name%"
set "diff_file=%upd_dir%.txt"
if exist %upd_dir% rd /s /q %upd_dir%
mkdir %upd_dir%
git diff --name-only %1 %2 > %diff_file%
if not %errorlevel% == 0 (
echo 运行【git diff】出错,检查【commit id】是否正确!
goto exit
)
for /f "delims=" %%i in (%diff_file%) do (
set ia=%%i
set ib=!ia:/=\!
echo F | xcopy %src_dir%\!ib! %upd_dir%\!ib! /S /Q /Y
)
goto end
:need_two_params
echo 需要输入1个或2个参数:【commit id】
goto exit
:exit
echo.
echo 程序运行【失败】
exit /b 1
:end
echo.
tree /F %upd_dir%
echo 程序运行【成功】
exit /b 0