@echo off
REM create_filter > filter.txt
echo ^<?xml version="1.0" encoding="utf-8"?^>
echo ^<Files^>
call :create_filter . "*.h" "Include Files" ""
call :create_filter . "*.c;*.cpp" "Source Files" ""
echo ^</Files^>
goto :end
:: **********************************************
:: find_path filter_regex filter_name tab_space
:create_filter
:: **********************************************
set _path_=%1
set _mask_=%2
set _name_=%3
set _tabs_=" "%4
set _next_=" "%_tabs_%
:: *********************
:: remove quotes
:: *********************
set _name_=%_name_:"=%
set _mask_=%_mask_:"=%
set _tabs_=%_tabs_:"=%
set _next_=%_next_:"=%
:: *********************
:: stop folders
:: *********************
for %%d in (data docs html) do (
if "%_name_%"=="%%d" (
goto :end
)
)
:: *********************
:: check whole folder tree
:: *********************
set _find_=0
for /R %%f in (%_mask_%) do set _find_=1
if %_find_%==0 (
goto :end
)
:: *********************
:: create filter
:: *********************
echo %_tabs_%^<Filter Name="%_name_%" Filter="%_mask_%"^>
:: *********************
:: add files
:: *********************
for %%f in (%_mask_%) do (
echo %_next_%^<File RelativePath="%_path_%\%%f" /^>
)
:: *********************
:: clib all the branches
:: *********************
for /D %%d in (*) do (
cd %%d
call :create_filter %_path_%\%%d "%_mask_%" %%d "%_tabs_%"
cd ..
)
echo %_tabs_%^</Filter^>
:: **********************************************
:end
:: **********************************************
creater_filter.bat 遍历查找指定文件
猜你喜欢
转载自blog.csdn.net/sinat_31964903/article/details/86539629
今日推荐
周排行