siyimase 发表于 2011-12-19 11:02:16

[批处理]【贡献一个清理项目垃圾文件的BAT】

直接上码@echo off
CLS
mode con cols=80 lines=30 &color 0a
:menu
cls
set release=release
set debug=debug
echo.
echo                               项目垃圾清理工具   
echo.                                                   
echo.
echo         【1】 清理.ncb
echo.
echo         【2】 清理所有非项目文件(.ncb .obj .pdb...)
echo.
echo   荐 ==》 【3】 清理.ncb 并删除Debug、Release文件夹            
echo.
echo         【4】 退出
echo.
set /p choice=请选择:
IF NOT "%choice%"=="" SET choice=%choice:~0,1%
if /i "%choice%"=="1" goto _1
if /i "%choice%"=="2" goto _2
if /i "%choice%"=="3" goto _3
if /i "%choice%"=="4" goto _4
echo   选择无效,请重新输入
echo.
goto cho
@echo off

:_1
@echo   开始清理...
for /r %%i in (*.ncb) do (del "%%i" /f /q & set /p gu=■<nul)
@echo.
@echo   清理完成...
pause
goto menu

:_2
@echo   开始清理...
for /r %%i in (*.ncb,*.obj,*.pdb,*.idb,*.manifest,*.pch,*.htm,*.ilk,*.dep,*.user,*.log) do (del "%%i" /f /q & set /p gu=■<nul)
@echo.
@echo   清理完成...
pause
goto menu

:_3
@echo   开始清理...
for /r %%i in (.,*.*) do (call :process %%~si)
@echo.
@echo   清理完成...
pause
goto menu

:process
if /i "%~x1" == ".ncb" (del /F /Q %1)
if /i "%~nx1" == "%release%" (call :re %1 & rd /S /Q %1)
if /i "%~nx1" == "%debug%" (call :de %1 & rd /S /Q %1)
goto :eof

:re
set /p gu=■<nul
for %%a in ("%1\*.exe","%1\*.dll","%1\*.lib") do (
if not exist "%1\..\bin" mkdir "%1\..\bin" > nul
copy /Y "%%a" "%1\..\bin\%%~na_%release%%%~xa" >nul 2>nul
)
goto :eof

:de
set /p gu=■<nul
for %%a in ("%1\*.exe","%1\*.dll","%1\*.lib") do (
if not exist "%1\..\bin" mkdir "%1\..\bin" > nul
copy /Y "%%a" "%1\..\bin\%%~na_%debug%%%~xa" >nul 2>nul
)
goto :eof

:_4
exit
页: [1]
查看完整版本: [批处理]【贡献一个清理项目垃圾文件的BAT】