- DS01:为什么要对生成的dll文件进行管理?
- DS02:首先介绍以下两个DOS命令
- DS03:第一种实现方法(xcopy)
- DS04:第二种实现方法(attrib)
- DS05:分享一个有意思的东西
- DS06:您可能需要了解的其他知识
有时候,我们需要将编译后的文件和dll拷贝到一个集中的地方,这一点对于多项目开发来讲很有帮助。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
attrib指令的格式和常用参数为 ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [[drive:] [path] filename] [/S [/D]] + 设置属性。 - 清除属性。 R 只读文件属性。 A 存档文件属性。 S 系统文件属性。 H 隐藏文件属性。 I 无内容索引文件属性。 [drive:][path][filename] 指定要处理的文件属性。 /S 处理当前文件夹及其子文件夹中的匹配文件。 /D 处理文件夹。 /L 处理符号链接和符号链接目标的属性。
![](http://images0.cnblogs.com/blog/686160/201501/041422510133156.png)
![](http://images0.cnblogs.com/blog/686160/201501/041423003568035.png)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
C:Usersshenjl>xcopy /? 复制文件和目录树。 XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W] [/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U] [/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z] [/B] [/EXCLUDE:file1[+file2][+file3]...] source 指定要复制的文件。 destination 指定新文件的位置和/或名称。 /A 仅复制有存档属性集的文件,但不更改属性。 /M 仅复制有存档属性集的文件,并关闭存档属性。 /D:m-d-y 复制在指定日期或指定日期以后更改的文件。 如果没有提供日期,只复制那些源时间比目标时间新的文件。 /EXCLUDE:file1[+file2][+file3]... 指定含有字符串的文件列表。每个字符串在文件中应位于单独的一行。 如果任何字符串与复制文件的绝对路径的任何部分相符,则排除复制 该文件。例如,指定如 obj 或 .obj 的字符串会分别排除目录 obj 下面的所有文件或带有 .obj 扩展名的所有文件。 /P 创建每个目标文件之前提示您。 /S 复制目录和子目录,不包括空目录。 /E 复制目录和子目录,包括空目录。与 /S /E 相同。可以用来修改 /T。 /V 验证每个新文件的大小。 /W 提示您在复制前按键。 /C 即使有错误,也继续复制。 /I 如果目标不存在,且要复制多个文件,则假定目标必须是目录。 /Q 复制时不显示文件名。 /F 复制时显示完整的源文件名和目标文件名。 /L 显示要复制的文件。 /G 允许将加密文件复制到不支持加密的目标。 /H 也复制隐藏文件和系统文件。 /R 覆盖只读文件。 /T 创建目录结构,但不复制文件。不包括空目录或子目录。/T /E 包括 空目录和子目录。 /U 只复制已经存在于目标中的文件。 /K 复制属性。一般的 Xcopy 会重设只读属性。 /N 用生成的短名称复制。 /O 复制文件所有权和 ACL 信息。 /X 复制文件审核设置(隐含 /O)。 /Y 取消提示以确认要覆盖现有目标文件。 /-Y 要提示以确认要覆盖现有目标文件。 /Z 在可重新启动模式下复制网络文件。 /B 复制符号链接本身与链接目标相对。 /J 复制时不使用缓冲的 I/O。推荐复制大文件时使用。 开关 /Y 可以预先在 COPYCMD 环境变量中设置。 这可能被命令行上的 /-Y 覆盖。
基本功能:复制文件和目录树。
常用用法:xcopy -r -y 原始文件夹文件名 目标文件夹
![](http://images0.cnblogs.com/blog/686160/201501/041436186697313.png)
![](http://images0.cnblogs.com/blog/686160/201501/041436320288031.png)
![](http://images0.cnblogs.com/blog/686160/201501/041452509667961.png)
![](http://images0.cnblogs.com/blog/686160/201501/041458264347739.png)
![](http://images0.cnblogs.com/blog/686160/201501/041502475591531.png)
![](http://images0.cnblogs.com/blog/686160/201501/041505147944151.png)
![](http://images0.cnblogs.com/blog/686160/201501/041506455911013.png)
1、背景:
如果你的开发任务中存在多个项目(这里指的是很多很多哦),那么每次编译的时候就会花很长的时间,
如果可以让编译结束之后给出弹窗提示,那么我们就可以在等待的这段时间里做点其他有意思的事情了,有没有很心动啊?
2、操作方法:
我们在最后一个项目的后期生成事件命令中调用以下的批处理文件:
命令:call $(SolutionDir)AfterBuild.bat
3、解释如下:
输出一段话 msgbox "项目已全部编译完成!" 到myTip.vbs文件中去(注意:没有的话会新建一个)。
然后执行这个新生成的vbs(visual basic script)文件,弹出提示框。
最后再删除此文件。
那么,当最后一个项目编译完成之后,就会弹出如下的弹窗提示我们继续coding了。
有没有很赞啊,其实有时候中间等待的时间都够我玩一把俄罗斯方块了,说多了都是泪。。。
![](http://images0.cnblogs.com/blog/686160/201501/041549315914218.png)
宏 | 说明 |
---|---|
$(ConfigurationName) |
当前项目配置的名称(例如,“Debug|Any CPU”)。 |
$(OutDir) |
输出文件目录的路径,相对于项目目录。这解析为“输出目录”属性的值。它包括尾部的反斜杠“”。 |
$(DevEnvDir) |
Visual Studio 2005 的安装目录(定义为驱动器 + 路径);包括尾部的反斜杠“”。 |
$(PlatformName) |
当前目标平台的名称。例如“AnyCPU”。 |
$(ProjectDir) |
项目的目录(定义为驱动器 + 路径);包括尾部的反斜杠“”。 |
$(ProjectPath) |
项目的绝对路径名(定义为驱动器 + 路径 + 基本名称 + 文件扩展名)。 |
$(ProjectName) |
项目的基本名称。 |
$(ProjectFileName) |
项目的文件名(定义为基本名称 + 文件扩展名)。 |
$(ProjectExt) |
项目的文件扩展名。它在文件扩展名的前面包括“.”。 |
$(SolutionDir) |
解决方案的目录(定义为驱动器 + 路径);包括尾部的反斜杠“”。 |
$(SolutionPath) |
解决方案的绝对路径名(定义为驱动器 + 路径 + 基本名称 + 文件扩展名)。 |
$(SolutionName) |
解决方案的基本名称。 |
$(SolutionFileName) |
解决方案的文件名(定义为基本名称 + 文件扩展名)。 |
$(SolutionExt) |
解决方案的文件扩展名。它在文件扩展名的前面包括“.”。 |
$(TargetDir) |
生成的主输出文件的目录(定义为驱动器 + 路径)。它包括尾部的反斜杠“”。 |
$(TargetPath) |
生成的主输出文件的绝对路径名(定义为驱动器 + 路径 + 基本名称 + 文件扩展名)。 |
$(TargetName) |
生成的主输出文件的基本名称。 |
$(TargetFileName) |
生成的主输出文件的文件名(定义为基本名称 + 文件扩展名)。 |
$(TargetExt) |
生成的主输出文件的文件扩展名。它在文件扩展名的前面包括“.”。
|