我有一个Visual Studio 2013解决方案,其中包含一个插件提供的自定义项目类型。这些项目不支持指定构建输出文件夹或后构建事件。我需要将构建输出从每个项目的输出位置复制到单个bin
文件夹,以便可以将它们上载到TFS中的放置位置。我如何编写批处理脚本或类似文件来复制
\SolutionDir\Project1\Debug\Win32\*
\SolutionDir\Project2\Debug\Win32\*
...
到
\SolutionDir\bin\Debug\Win32\*
请记住,某些项目依赖于其他项目,因此可能在多个位置存在相同的.dll
。我保留的并不重要。我试过像
for /f "tokens=*" %a in ('dir *.dll *.exe /b /s /a-d') do copy "%a" "bin" /y
但这不会保留\Debug\Win32
文件夹结构
答案 0 :(得分:0)
我设法在我称为CopyBins.bat
的批处理脚本的帮助下解决了这个问题。它不是特别优雅,但在这里;
dir /b /s /ad | find "\%1\" > folders.txt
for /f "tokens=*" %%a in ('cat folders.txt') do xcopy /s /y "%%a" %1\
del folders.txt
然后我可以通过调用
来执行它CopyBins Debug
请记住,我不能只执行
for /f "tokens=*" %a in ('dir /b /s /ad | find "\Debug\"') do xcopy /s /y "%a" Debug\
因为我收到了错误
| was unexpected at this time.
如果有人有更好的解决方案我想听听......