我想备份我的Projects文件夹。它主要包含.NET项目的子文件夹(VS2005,VS08和VS10)。
在进行备份之前我应该删除什么(例如TestResults
,bin
,obj
);如果有什么我不应该删除但应该忽略,那可能是什么;而且,最重要的是,如何最好地自动化整个过程(我正在考虑批处理文件或更好)?
我需要注意哪些问题?
答案 0 :(得分:3)
我建议使用源代码控制并备份源代码控制存储库。如果这仅适用于个人项目,我建议Subversion或Mercurial。它们易于使用,与Windows资源管理器集成,可以设置为忽略某些目录,并提供其他well published benefits以外的备份。
如果备份了源代码存储库,则无需自行备份项目。
对于您可能会考虑忽略的其他内容,您可以安全地忽略.user和.suo文件,这些只是用户设置,例如您在项目中打开的文件。根据您的开发环境,您还可以忽略.sln文件(解决方案文件)。解决方案文件很容易重建,如果您在团队环境中工作,可能更容易获得单独的解决方案。
答案 1 :(得分:2)
(编辑:看起来像其他人,包括Jeff Atwood,已经创建了执行此操作的工具。)
好的,想通过递归搜索子文件夹并使用批处理文件和cmd
删除那些匹配模式的文件夹很困难。幸运的是,PowerShell(默认安装在Windows 7上,IIRC)可以做到(kudos):
get-childitem C:\Projects\* -include TestResults -recurse | remove-item -recurse -force
这是基于Remove-Item
帮助条目的示例4。它以递归方式搜索路径,查找名为“TestResults”的任何内容(文件或文件夹)(如果需要,可以在其中放置通配符)并将结果传递给Remove-Item
命令,删除它们。要测试它,只需将管道移至Remove-Item
。
我们如何删除每个语句不只是一个文件夹?在PowerShell的array syntax中输入文件夹列表:
get-childitem C:\Projects\* -include bin,obj,TestResults -recurse | remove-item -recurse -force
您可以从命令提示符或类似内容(reference)
运行此命令powershell.exe -noexit get-childitem C:\Projects\* -include bin,obj,TestResults -recurse | remove-item -recurse
明显的免责声明
如果您将必要的文件保存在名为bin
,obj
等的文件夹或文件中,请不要使用此方法。