[WinOF] learned about .bat for() loops & default delimiters with folder name which...
[mirror/winof/.git] / etc / clean-build.bat
1 @echo off\r
2 setlocal\r
3 \r
4 rem usage: clean-build {scan}\r
5 rem no args - remove build specific folder & files: *_wxp_* *_wnet_* *_wlh_*\r
6 rem arg1 != "" - then report matched folders & files - no delete.\r
7 \r
8 set T=%TEMP%\flist.txt\r
9 \r
10 rem delete OS flavor {wlh,wxp,wnet} specific build files to ensure a clean build\r
11 \r
12 rem The story behind the for loop need for the fake 'delims=,' is the need to\r
13 rem override the default delimiters of <space> & <tab>, anything but <space>\r
14 rem or <tab>. Problems occur with a folder name like\r
15 rem 'c:\svn\trunk\ulp\ipoib - copy(2)\objfre_wlh_x86' as the default delimiters\r
16 rem in for loop file read return 'c:\svn\trunk\ulp\ipoib', bad juju.\r
17 \r
18 rem check/remove directories\r
19 \r
20 for %%d in ( _wlh_ _wnet_ _wxp_ ) do (\r
21         echo  Folder Scan for *%%d*\r
22         dir /B /S /A:D *%%d* > %T% 2>&1\r
23         if ERRORLEVEL 1 (\r
24                 del /Q/F %T%\r
25         ) else (\r
26                 for /f "delims=," %%f in ( %T% ) do (\r
27                         if EXIST "%%f" (\r
28                                 if "%1" == "" (\r
29                                         rmdir /S /Q "%%f" 1>nul\r
30                                 ) else (\r
31                                         echo   found "%%f"\r
32                                 )\r
33                         )\r
34                 )\r
35                 del /Q/F %T%\r
36         )\r
37 )\r
38 \r
39 rem check/remove files\r
40 \r
41 for %%d in ( _wlh_ _wxp_ _wnet_ ) do (\r
42         echo  File Scan for *%%d*\r
43         dir /B /S *%%d* > %T% 2>&1\r
44         if ERRORLEVEL 1 (\r
45                 del /Q/F %T%\r
46         ) else (\r
47                 for /f "delims=," %%f in ( %T% ) do (\r
48                         if EXIST "%%f" (\r
49                                 if "%1" == "" (\r
50                                         del /F /Q "%%f" 1>nul\r
51                                 ) else (\r
52                                         echo   found %%f\r
53                                 )\r
54                         )\r
55                 )\r
56                 del /Q/F %T%\r
57         )\r
58 )\r
59 endlocal\r
60 \r