我正在尝试自动执行一些任务...我必须在一台机器上进行一些开发工作,在另一台机器上进行其他部分开发工作,并通过网络共享进行通信。
我想复制某些文件,而不是整个目录 - 其中可能包含许多额外的构建项,有些很大。
就像是
set source="C:\Users\me\Documents\sourcefolder"
set dest="\\SHARE\FOLDER\me\destfolder"
xcopy %source%+"*.cpp" %dest%
我该如何执行这样的命令?将具有给定模式的所有文件(如* .cpp)从源复制到目标?
此外 - 对于源内的所有文件夹,可以递归地完成吗?
编辑:
试
xcopy "C:\Users\me\Documents\sourcefolder\*.cpp" "\\SHARE\FOLDER\me\destfolder\"
(第一次尝试没有成功,因为我不知道我应该创建一个 bat 文件。谢谢 Saggio。)
不过...为了获得最佳结果,对于复杂的目录结构,我希望能够使用变量并可能进行递归复制 - 我必须复制许多目录。
另外,我想要复制的模式类似于“所有扩展名为 .cpp 的文件,除了以 moc_ 开头的文件”或“所有扩展名为 .h 的文件,除了以 ui_ 开头的文件”
我想我可以复制然后删除我不想要的帽子...但是有没有更好的方法呢?
答案1
没有列出您的操作系统和环境如果您可以使用 robocopy,它拥有您执行此操作所需的所有工具,具体取决于您的详细信息:
robocopy %源%%目标%* .cpp / s
将所有 cpp 文件从源复制到目标
它包括许多其他选项,可根据您确切的需求自动执行此任务。只需执行 robocopy /?,它就会列出它们。例如,您可以执行测试 robocopy,它仅显示如果是真实的,它会做什么。/L :: 仅列出 - 不复制、时间戳或删除任何文件。