用于通过网络自动复制文件的脚本

用于通过网络自动复制文件的脚本

我正在尝试自动执行一些任务...我必须在一台机器上进行一些开发工作,在另一台机器上进行其他部分开发工作,并通过网络共享进行通信。

我想复制某些文件,而不是整个目录 - 其中可能包含许多额外的构建项,有些很大。

就像是

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 :: 仅列出 - 不复制、时间戳或删除任何文件。

相关内容