@echo offsetlocal enabledelayedexpansionrem ++++++++++++++++++++++++++++++++++++rem pp:pre process, preprocessing remrem handling git ignores empty directory issues rem Note: rem 1, the file is placed in the GIT project root directory, before Git add execute the file rem 2, New files will be added to the empty directory. Gitignore ignores the submission rem 3 and processing of all peer files: first delete all. Gitignore, then find all empty directories and add files remrem ++++++++++++++++ ++++++++++++++++++++ (for /r %%i in (*.gitignore) do (if not %%~fi == %cd%\.gitignore (echo %%~fi -- prepare to deletedel "% ~fi "if errorlevel 0 (echo %%~fi -- success to delete) else ( Echo %%~fi -- fail to delete)) del pp_dir_all > nul 2> nuldel pp_dir_filter > nul 2>nulfor /d %%i in (*) do ( for /f "delims=" %%j in (' dir /s /b /ad '%%~fi "') do ( echo %%~fj -- prepare to collectecho %%j>> pp_dir_all)) if exist pp_dir_all (for /f "delims=" %%i in (pp_dir_all) do (echo %%i -- prepare to check children countset /a children_count=0for /f "Delims=" %%j in (' dir /b '%%~fi "') do (echo %%~fj -- print Childrenset /a children_count+=1) echo %%i -- child_count: !children_count!if !children_count! == 0 (echo %%i -- none childrenecho %%~fi> > pp_dir_filter )) if exist pp_dir_filter (for /f "delims=" %%i in (Pp_dir_filter) do (echo %%i -- prepare to create . gitignore fileecho * > "%%i\.gitignore" if errorlevel 0 ( echo %%~fi -- success to create ) else ( echo %%~fi -- fail to create )) del pp_dir_all > nul 2>nuldel pp_dir_filter > nul 2>nulrem echo. & pause rem ) > nul 2>nul > pplog.txtecho. >> pplog.txtecho. >> pplog.txtecho. >> pplog.txtecho. >> pplog.txtecho. ** current .gitignore list>> pplog.txtecho. >> pplog.txtfor /r %%i in (*.gitignore) do (Echo %%~fi >> pplog.txt)
Git commits an empty directory under Windows