两个文件:ProjectClean v1.0.bat和ProjectBackup v1.3.bat

1.工程清理

VC++工程清理就是删除各种工程管理临时文件、编译出的临时文件,如.obj文件。

ProjectClean v1.0.bat会删除当前目录和所有子目录里面所有应该删除的临时文件。保留Debug和Release里面的所有.exe等非临时文件,这样可以减少这个工程的磁盘空间占用,或者可以有利于代码移动、保存等。

.res文件该不该删除必须提一下,它对VC#工程是有用的,但是对VC#工程似乎是没有用的。

当时VC++和VC#工程都放在一起,然后在他们的父目录上面运行,结果VC#工程的.res文件被删除,从而VC#工程资源文件出错误。

假设E:/Prj_VC专门放VC++工程的,只要运行在E:/Prj_VC里面运行PProjectClean v1.0.bat,秒秒钟清理干干净净,干净的意思是没有不该有的临时文件。

ProjectClean v1.0.bat文内容如下:

:: [Purpose] :: Clean the MS VC++ 6/7/8/9/10 Project's temp file ... :: [Author] :: intret :: [Date] :: 2011.04.08 YMD :: [Version] :: V1.0 :: [Revision] :: 1. :: [Todo] :: .usr is hidden file @echo off color 2f title VC++ Project Clean run at %DATE%_%TIME% ::mode con:cols=70 lines=30 set fExts=ncb.opt.obj.ilk.pdb.plg.aps.bsc.tmp.trc.pch.idb.exp.sbr set fExts10=.sdf.usr.*log.suo.ipch set fileExts=%fExts%%fExts10% echo [1] Cleanning files. :loop FOR /F "usebackq delims=. tokens=1,*" %%i IN (`echo %fileExts%`) DO ( if not "%%j"=="" (del /S *.%%i&set fileExts=%%j&goto loop) else del /S *.%%i&goto endloop ) :endloop color 4f echo [2] Command complected. :Exit pause>nul

2.工程备份

功能:压缩文件夹并智能命名目标文件。(可以先调用ProjectClean v1.0.bat清理VC++工程,然后给工程文件夹压缩,做备份)

原理:调用WinRAR/HaoZip/7Zip压缩软件把整个文件夹都压缩到一个文件,并按照一定的格式进行命名,特色就是自动命名方便,无它。

命名格式:

<文件夹名称> + [<点分的日期格式> +下划线+ <点分的时间格式> ] + 点 +<后缀>

例如:

DemoAppProject [2011.1.1_10.59.1.23].zip

当然,时间中,秒的后面还有一个精确的数字,不知道是什么,看起来像毫秒又不是3位数的。如果你不喜欢这个命名格式,可以修改如下语句:

set fName=%parentFolder% [%fDate%_%fTime%]

成为:

set fName=%parentFolder%__%fDate%__%fTime%

当然,你懂的。

如果你喜欢,可以学习之,然后修改之,传播之,有什么好的建议,告之。

ProjectBakup v1.3.bat 文件内容如下。

:: [Purpose] :: 使用该批处理文件来压缩文件夹,以达到备份源码工程的目的。 :: (可以把批处理放在工程或者解决方案目录里面) :: [Author] :: intret :: [Date] :: 2011.04.07 YMD :: [Version] :: V1.3 :: [Revision] :: 1.[2011.04.08 YMD] 检查批处理文件是否在分区根目录中运行. :: 2.[2011.04.14 YMD] 支持 HaoZip和7Zip. :: 3.[2011.04.19 YMD] 支持压缩文件中仅包含一个文件夹。 :: @echo off title Compress folder at %DATE%_%TIME% ::mode con:cols=70 lines=30 if "%~p0"=="/" (color 4f&echo [Error] This bat file can't run at a drive's root folder!&goto Exit) :: :: Detecting compression application :: set zipAppWinRAR=%ProgramFiles%/WinRAR/Rar.exe set zipAppHaoZip=%ProgramFiles%/HaoZip/HaoZipC.exe set zipApp7Zip=%ProgramFiles%/7-Zip/7z.exe color 3f echo [1] Compression application detecting... if not exist "%zipAppWinRAR%" (set zipAppWinRAR=) else (echo WinRAR detected.) if not exist "%zipAppHaoZip%" (set zipAppHaoZip=) else (echo HaoZip detected.) if not exist "%zipApp7Zip%" (set zipApp7Zip=) else (echo 7-Zip detected.) :: :: Format date and time :: set fDate= set fTime= FOR /F "usebackq delims= " %%i IN (`echo %DATE%`) DO ( FOR /F "usebackq delims=- tokens=1,2,3" %%I IN (`echo %%i`) DO ( set fDate=%%I.%%J.%%K ) ) FOR /F "usebackq delims= " %%i IN (`echo %TIME%`) DO ( FOR /F "usebackq delims=: tokens=1,2,3" %%I IN (`echo %%i`) DO ( set fTime=%%I.%%J.%%K ) ) :: :: Get parent folder name :: set parentPath=%~p0 set parentFolder= :split FOR /F "usebackq delims=/ tokens=1,*" %%i IN (`echo %parentPath%`) DO ( if "%%j"=="" (set parentFolder=%%i&goto endsplt) else set parentPath=%%j&goto split ) :endsplt set fName=%parentFolder% [%fDate%_%fTime%] set fPath= set fExt= pushd %cd% cd .. set fPath=%cd%/%fName% popd :: :: Compressing file. :: color 3f echo [2] Compressing file... ::if not "%zipAppWinRAR%"=="" set fExt=rar&goto WinRAR ::if not "%zipAppHaoZip%"=="" set fExt=zip&goto HaoZip if not "%zipApp7Zip%"=="" set fExt=zip&goto 7Zip :WinRAR cd.. set cmdline="%zipAppWinRAR%" A "%fName%.%fExt%" "%parentFolder%" ::echo 执行命令:%cmdline% %cmdline% if "%ERRORLEVEL%"=="0" echo 成功操作。&goto END if "%ERRORLEVEL%"=="1" echo 警告。发生非致命错误。 if "%ERRORLEVEL%"=="2" echo 发生致命错误。 if "%ERRORLEVEL%"=="5" echo 写错误。 if "%ERRORLEVEL%"=="7" echo 错误命令行选项。 if "%ERRORLEVEL%"=="8" echo 内存不足。 if "%ERRORLEVEL%"=="9" echo 文件创建错误。 goto END :HaoZip cd.. "%zipAppHaoZip%" a -tzip "%fPath%.%fExt%" "%parentFolder%" -r goto END :7Zip cd .. "%zipApp7Zip%" a -tzip "%fPath%.%fExt%" "%parentFolder%" -r if "%ERRORLEVEL%"=="0" echo No error。 if "%ERRORLEVEL%"=="1" echo Warning:one or more files were locked by some other application, so they were not compressed. if "%ERRORLEVEL%"=="2" echo Fatal error。 if "%ERRORLEVEL%"=="8" echo Not enough memory for operation。 if "%ERRORLEVEL%"=="255" echo User stopped the process。 goto END :END color 2f echo [3] Command complected. if exist "%fName%.%fExt%" echo %fPath%.%fExt% 成功创建。 :Exit echo. pause


3.为什么不把两个文件写一起?功能独立呗。

[批处理大放送] Visual Studio 之 VC++ 工程清理和备份相关推荐

  1. 上千个国外免费权威优质编程学习课程大放送 —— 提升篇

    随着互联网的发展,像 MIT 和斯坦福等世界名校,都开始在网上公开一些优质的在线免费课程供大家学习.到现在,已经有来自全球共 1000 所左右的学校提供了非常多的优质课程,最有名的平台就是 MOOC. ...

  2. 【云栖大会精华汇】历届云栖大会精彩资料大放送,一篇看尽云栖大会前世今生...

    [热点头条] 历届云栖大会精彩资料大放送,一篇看尽云栖大会前世今生        如果从2009-2010年算起,2017杭州云栖大会已经是第八届.为帮助更多朋友认识云栖大会,云栖社区特别整理了历届云 ...

  3. 【算力大放送2】GPU 专属服务器使用教程!!!

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 昨天,已给大家放送了如何获取免费GPU的方法,可以查看[算力大放送]专属 GPU ...

  4. DeepMind大放送:开放4个多物体表征学习数据集,还有一篇智能体新研究

    铜灵 发自 凹非寺 量子位 出品 | 公众号 QbitAI "专注开源一百年"的DeepMind,今天又有了新动作. 这次连环放送包含的新物件不少:四个多物体表征学习数据集,还有一 ...

  5. 未解决:错误的结果 2 (从“D:\Program Files\Microsoft Visual Studio 8\VC\bin\cl.exe”返回)。...

    今天在编译一个VC2005的应用程序时提示该错误.在网上搜了一下这个文件,原来是一个C/C++优化编译器小工具. 我在生成正好在项目属性里面设置了优化速度功能,发现了问题所在. 于是我打开cmd,直接 ...

  6. 【资源放送】机器学习/深度学习最全公开视频大放送!

    文章首发于微信公众号<有三AI> [资源放送]机器学习/深度学习最全公开视频大放送! 该篇小记一下机器学习与深度学习的一些好的基础视频资源. 如果你是刚入门的小白,建议细细阅读一下下面将要 ...

  7. PMcaff会员圣诞礼物大放送!

    PMcaff圣诞礼物大放送 2014.12.15 18:00至 2014.12.18 18:00 活动介绍 pmcaff圣诞福利大放送开始啦!!! 为了更多的帮助大家充电学习,我们跟萝卜网合作,特批了 ...

  8. 炫酷背光文字html,详细PS教程大放送:如何快速做出高级创意的文字背光效果?...

    原标题:详细PS教程大放送:如何快速做出高级创意的文字背光效果? 现在做海报,做广告等,都需要有文案,高级炫酷的文字,会为你的作品加分,让整张海报瞬间高逼格,那如何快速用ps做错高级创意的文字背光效果 ...

  9. 【数据资源】遥感资源大放送(下)| 11 个经典遥感数据集

    By 超神经 内容提要:利用遥感影像进行土地类别分型,最常用的方法是语义分割.本文继上期土地分类模型训练教程之后,又整理了几大主流公开遥感数据集. 关键词:遥感数据集   语义分割   机器视觉 在上 ...

  10. 好插件·用户造【CSND超好用插件】·【机械键盘大放送】

    好插件·用户造,CSDN寻找最佳产品体验官 |有奖征文赛进行中- 活动地址:(快来参加·[机械键盘大放送]) [https://bbs.csdn.net/topics/603667668?shares ...

最新文章

  1. 做项目时用到的linux知识
  2. UML中类图与对象图的区别
  3. FMS应用实例 - 从FMS服务器读取文件(图片/SWF/文本)到客户端
  4. android studio 显示方法列表,有没有办法在Android Studio编辑器中显示RecyclerView内容的预览?...
  5. beam search算法
  6. Linux的uevent事件机制
  7. 【读书笔记】面试为什么总考算法_如何避开算法面试
  8. C51单片机实验——矩阵按键
  9. 第欧根尼:我崇尚简朴朴素克己的生活
  10. python工资条教程_这才是史上最简单的工资条制作方法
  11. 在服务器上创建文件夹,在服务器上创建文件夹
  12. cookielifetime php_php中实现精确设置session过期时间的方法
  13. 【经验】不摸鱼的时光
  14. NAACL最佳方法论文 | 课本上的A*搜索算法可以提升文本生成效果!
  15. R语言交叉验证(详细)
  16. 碾压Dota2世界冠军的AI,被一小撮人持续干翻了
  17. ChatGPT版必应疑似「发疯」?微软紧急限制回答数目
  18. 课程预约小程序制作功能介绍
  19. RK3568平台开发系列讲解(内核篇)挂载文件系统介绍
  20. 树莓派DS18B20温度传感器获取温度

热门文章

  1. revit 转换ifc_将IFC转换成GLTF格式
  2. 百度网页快照删除服务恢复运营
  3. video截取视频内容作为封面
  4. android 锁屏崩溃,去掉锁屏后Android启动死锁问题
  5. unity3d meshBaker 基本的使用
  6. MeshBaker插件 使用套路
  7. 在电脑上如何直接下载秒拍的视频?
  8. 一位计算机专业硕士毕业生的求职经历和感想
  9. 计算机局域网的组网,计算机局域网组网方案设计(精选).doc
  10. 优秀员工评审表 模板