visual studio使用dos命令在生成项目时复制文件到指定目录
本人使用软件:vs2015
拷贝“项目1”的 bin目录 下, 项目配置的名称(“Release”,“Debug”)目录下,所有内容到“项目2”输出目录(存在直接覆盖):
xcopy $(SolutionDir)项目1名称\bin\$(ConfigurationName) $(SolutionDir)项目2名称\$(OutDir) /E /Y /F /I
删除项目输出文件目录中.xml和.pdb格式文件:
del $(SolutionDir)项目名称\$(OutDir)*.xml
del $(SolutionDir)项目名称\$(OutDir)*.pdb
1.dos命令 xcopy参数详解
Xcopy
复制文件和目录,包括子目录。
语法:xcopy Source Destination [/w] [/p] [/c] [/v] [/q] [/f] [/l] [/g] [/d[:MM-DD-YYYY]] [/u] [/i] [/s [/e]] [/t] [/k] [/r] [/h] [{/a |/m}] [/n] [/o] [/x] [/exclude:FileName1[+[FileName2]][+[FileName3]] [{/y | /-y}] [/z]
参数:
Source 必需。指定要复制的文件的位置和名称。该参数必须包含驱动器或路径。
Destination 指定要复制的文件的目标。该参数可以包含驱动器号和冒号、目录名、文件名或者它们的组合。
/w
在开始复制文件之前将显示以下消息并等待您的响应:
Press any key to begin copying file(s)
/p
提示您确认是否要创建每个目标文件。
/c
忽略错误。
/v
在写入目标文件时验证每个文件,以确保目标文件与源文件完全相同。
/q
禁止显示“xcopy”的消息。
/f
复制时显示源文件名和目标文件名。
/l
显示要复制的文件列表。
/g
创建已解密的目标文件。
/d [:MM-DD-YYYY]
只复制那些在指定日期或指定日期之后更改过的源文件。如果不包括“MM-DD-YYYY”值,“xcopy”会复制比现有“Destination”文件新的所有“Source”文件。该命令行选项使您可以更新更改过的文件。
/u
只从“Source”复制“Destination”中已有的文件。
/i
如果“Source”是一个目录或包含通配符,而“Destination”不存在,“xcopy”会假定“destination”指定目录名并创建一个新目录。然后,“xcopy”会将所有指定文件复制到新目录中。默认情况下,“xcopy”将提示您指定“Destination”是文件还是目录。
/s
复制非空的目录和子目录。如果省略“/s”,则“xcopy”将在单个目录中工作。
/e
复制所有子目录,包括空目录。将“/e”与“/s”和“/t”命令行选项一起使用。
/t
只复制子目录结构(即目录树),不复制文件。要复制空目录,必须包含“/e”命令行选项。
/k
复制文件,如果源文件具有只读属性,则在目标文件中保留该属性。默认情况下,“xcopy”将删除只读属性。
/r
复制只读文件。
/h
复制具有隐藏和系统文件属性的文件。默认情况下,“xcopy”不复制隐藏或系统文件。
/a
只复制那些具有存档文件属性设置的源文件。“/a”不修改源文件的存档文件属性。有关如何通过使用“attrib”来设置存档文件属性的信息,请参阅“相关主题”。
/m
复制具有存档文件属性设置的源文件。与“/a”不同,“/m”关闭在源中指定的文件的存档文件属性。有关如何通过使用“attrib”来设置存档文件属性的信息,请参阅“相关主题”。
/n
使用 NTFS 短文件或目录名创建副本。将文件或目录从 NTFS 卷复制到 FAT 卷或者当目标文件系统需要 FAT 文件系统命名约定(即 8.3 字符)时,需要“/n”。目标文件系统可以是 FAT 或 NTFS。
/o
复制文件所有权与随机访问控制列表 (DACL) 信息。
/x
复制文件审核设置和系统访问控制列表 (SACL) 信息(包含“/o”)。
/exclude:FileName1[+[ FileName2]][+[FileName3]]
指定包含字符串的文件列表。
/y
禁止提示确认要覆盖已存在的目标文件。
/-y
提示您确认要覆盖已存在的目标文件。
/z
在可重启模式中通过网络复制。
/?
在命令提示符显示帮助。
2.vs 路径宏详解
$(RemoteMachine)
设置为“调试”属性页上“远程计算机”属性的值。有关更多信息,请参见更改用于 C/C++ 调试配置的项目设置。
$(References)
以分号分隔的引用列表被添加到项目中。
$(ConfigurationName)
当前项目配置的名称(例如“Debug”)。
$(PlatformName)
当前项目平台的名称(例如“Win32”)。
$(Inherit)
指定在由项目生成系统所撰写的命令行中,继承的属性出现的顺序。默认情况下,继承的属性出现在当前属性的末尾。
$(NoInherit)
使任何将被继承的属性不被继承。若还要避免同级级别的计算,请使用 $(StopEvaluating)。使用 $(NoInherit)会导致对于同一属性忽略任何出现的 $(Inherit)。
$(StopEvaluating)
立即停止计算链中宏的计算。出现在 $(StopEvaluating) 之后的任何值将不出现在宏的计算值中。如果$(StopEvaluating) 在 $(Inherit) 之前,计算链中当前位置的继承值将不会连接到宏值。$(StopEvaluating)是 $(NoInherit) 的功能超集。
$(ParentName)
包含此项目项的项的名称。该名称将是父文件夹名称或项目名称。
$(RootNameSpace)
包含应用程序的命名空间(如果有)。
$(IntDir)
为中间文件指定的相对于项目目录的目录路径。它解析为“中间目录”属性的值。
$(OutDir)
输出文件目录的路径,相对于项目目录。这解析为“输出目录”属性的值。
$(DevEnvDir)
Visual Studio .NET 的安装目录(定义形式:驱动器 + 路径);包括尾部的反斜杠“\”。
$(InputDir)
输入文件的目录(定义形式:驱动器 + 路径);包括尾部的反斜杠“\”。如果该项目是输入,则此宏等效于 $(ProjectDir)。
$(InputPath)
输入文件的绝对路径名(定义形式:驱动器 + 路径 + 基本名称 + 文件扩展名)。如果该项目是输入,则此宏等效于 $(ProjectPath)。
$(InputName)
输入文件的基本名称。如果该项目是输入,则此宏等效于 $(ProjectName)。
$(InputFileName)
输入文件的文件名(定义为基本名称 + 文件扩展名)。如果该项目是输入,则此宏等效于 $(ProjectFileName)。
$(InputExt)
输入文件的文件扩展名。它在文件扩展名的前面包括“.”。如果该项目是输入,则此宏等效于 $(ProjectExt)。
$(ProjectDir)
项目的目录(定义形式:驱动器 + 路径);包括尾部的反斜杠“\”。
$(ProjectPath)
项目的绝对路径名(定义形式:驱动器 + 路径 + 基本名称 + 文件扩展名)。
$(ProjectName)
项目的基本名称。
$(ProjectFileName)
项目的文件名(定义为基本名称 + 文件扩展名)。
$(ProjectExt)
项目的文件扩展名。它在文件扩展名的前面包括“.”。
$(SolutionDir)
解决方案的目录(定义形式:驱动器 + 路径);包括尾部的反斜杠“\”。
$(SolutionPath)
解决方案的绝对路径名(定义形式:驱动器 + 路径 + 基本名称 + 文件扩展名)。
$(SolutionName)
解决方案的基本名称。
$(SolutionFileName)
解决方案的文件名(定义为基本名称 + 文件扩展名)。
$(SolutionExt)
解决方案的文件扩展名。它在文件扩展名的前面包括“.”。
$(TargetDir)
生成的主输出文件的目录(定义形式:驱动器 + 路径);包括尾部的反斜杠“\”。
$(TargetPath)
生成的主输出文件的绝对路径名(定义形式:驱动器 + 路径 + 基本名称 + 文件扩展名)。
$(TargetName)
生成的主输出文件的基本名称。
$(TargetFileName)
生成的主输出文件的文件名(定义为基本名称 + 文件扩展名)。
$(TargetExt)
生成的主输出文件的文件扩展名。它在文件扩展名的前面包括“.”。
$(VSInstallDir)
安装 Visual Studio .NET 的目录。
$(VCInstallDir)
安装 Visual C++ .NET 的目录。
$(FrameworkDir)
安装 .NET Framework 的目录。
$(FrameworkVersion)
Visual Studio 使用的 .NET Framework 版本。与 $(FrameworkDir) 相结合,就是 Visual Studio 使用的 .NET Framework 版本的完整路径。
$(FrameworkSDKDir)
安装 .NET Framework SDK 的目录。.NET Framework SDK 可作为 Visual Studio .NET 的一部分安装,也可单独安装。
$(WebDeployPath)
从 Web 部署根到项目输出所属于的位置的相对路径。返回与 RelativePath 相同的值。
$(WebDeployRoot)
指向 <localhost> 位置的绝对路径。例如,c:\inetpub\wwwroot。
$(SafeParentName)
有效名称格式的直接父级的名称。例如,窗体是 .resx 文件的父级。
$(SafeInputName)
作为有效类名的文件的名称,但不包括文件扩展名。
$(SafeRootNamespace)
项目向导将在其中添加代码的命名空间名称。此命名空间名称将只包含在有效的 C++ 标识符中允许的字符。
$(FxCopDir)
fxcop.cmd 文件的路径。fxcop.cmd 文件不和所有的 Visual C++ 版本一起安装。