使用 robocopy 将多个文件夹复制到一个目的地

SDG*_*ero 5 powershell robocopy regex scp

我正在寻找使用 robocopy 将多个文件夹从目录复制到远程网络共享的解决方案。我想从包含数百个我不感兴趣的文件夹的目录中选择几个文件夹。我想使用正则表达式在 linux 中执行类似于 scp 的操作,但这在 robocopy 中不起作用:

c:\robocopy "c:\results\1319_TC1.*" "\\datastore\somefolder\"
Run Code Online (Sandbox Code Playgroud)

wul*_*lxz 5

试试这个:

gci C:\results\1319_TC1.* | foreach-object { robocopy $_.fullname (".\datastore\somefolder\" + $_.name) }

gci C:\results\1319_TC1.*首先获取所有匹配的文件/目录,并将它们放入管道中,其中foreach-object处理第一个命令的所有结果。它将自动复制每个结果的完整路径(结果目录的完整路径)并将它们放入 .\datastore\somefolder\ 及其原始文件夹名称,例如:
C:\results\1319_TC1.123456->C:\results\datastore\somefolder\1319_TC1.123456

大括号中的那个东西会将目标目录名称和原始文件夹名称放在一起。

编辑:
我刚刚看到你的目标目录应该是 UNC 路径。Robocopy 接受 UNC 路径(即使路径名超过 256 个字符)。你只需要在我的命令中替换(".\datastore\somefolder\"("\\datastore\somefolder\"。所以正确的命令是:

gci C:\results\1319_TC1.* | foreach-object { robocopy $_.fullname ("\\datastore\somefolder\" + $_.name) }