我用的是Visual Studio 2017,新建八个源文件,每个源文件随便cout一些文字,大概5、6行的代码。每写完一个源文件都运行一次(运行才会产生缓存文件),最终这个项目占245M,删掉缓存后,仅占13.7KB。何况缓存会随着每一次运行逐步增大,所以说,清掉这些缓存很有必要!
普通版
在工程目录下新建一个.txt文件,将以下内容保存为.bat后缀的文件,双击运行
del /f /s /q \debug\*.* rd /s /q debug del /f /s /q ipch\*.* rd /s/q x64 rd /s/q ipch del /f /s /q \.vs\*.* rd /s /q .vs del /s /q *.sdf del /f /s /q \x64\debug\*.* rd /s /q x64\debug del /f /s /q \test\x64\debug\*.* rd /s /q test\x64\debug del /f /s /q \test\debug\*.* rd /s /q test\debug rd /s /q test\x64 del /f /s /q test\ipch\*.* rd /s/q test\ipch del /f /s /q \test\.vs\*.* rd /s /q test\.vs del /s /q test\*.sdf
接触过CMD命令/Powershell的话,很容易发现,这段代码其实就是执行del删除指定文件夹内的所有文件之后执行rd删除空文件夹(因为不可以直接删除非空文件夹,所以先执行del再执行rd)。第11~20行删除的是项目名称为text文件内的指定文件,对我的**”C++ Study 源程序”**文件夹就没有作用,这种方法只能指定路径、指定文件名字,具有一定的局限性。
精简版
同理在工程目录下新建一个.txt文件,将以下内容保存为.bat后缀的文件,双击运行
@echo off setlocal enabledelayedexpansion for /r . %%a in (Debug) do ( if exist %%a ( echo"delete" %%a rd /s /q "%%a" ) )
for /r . %%a in (.vs) do ( if exist %%a ( echo"delete" %%a rd /s /q "%%a" ) )
for /r . %%a in (Release) do ( if exist %%a ( echo"delete" %%a rd /s /q "%%a" ) )
for /r . %%a in (Win32) do ( if exist %%a ( echo"delete" %%a rd /s /q "%%a" ) )
for /r . %%a in (x64) do ( if exist %%a ( echo"delete" %%a rd /s /q "%%a" ) )
for /r . %%a in (ipch) do ( if exist %%a ( echo"delete" %%a rd /s /q "%%a" ) )
for /r . %%a in (*.sdf) do ( if exist %%a ( echo"delete" %%a del"%%a" ) )
::删除CMake cache for /r . %%a in (CMakeFiles) do ( if exist %%a ( echo"delete" %%a rd /s /q "%%a" ) )
for /r . %%a in (Testing) do ( if exist %%a ( echo"delete" %%a rd /s /q "%%a" ) )
for /r . %%a in (_CPack_Packages) do ( if exist %%a ( echo"delete" %%a rd /s /q "%%a" ) )
for /r . %%a in (CMakeCache.txt) do ( if exist %%a ( echo"delete" %%a del"%%a" ) )
for /r . %%a in (Makefile) do ( if exist %%a ( echo"delete" %%a del"%%a" ) )
for /r . %%a in (*.cmake) do ( if exist %%a ( echo"delete" %%a del"%%a" ) )
for /r . %%a in (*.exe) do ( if exist %%a ( echo"delete" %%a del"%%a" ) )
for /r . %%a in (*.a) do ( if exist %%a ( echo"delete" %%a del"%%a" ) )
for /r . %%a in (install_manifest.txt) do ( if exist %%a ( echo"delete" %%a del"%%a" ) ) pause