Powershell

使用 robocopy 將多個文件夾複製到一個目的地

  • November 2, 2021

我正在尋找使用 robocopy 將多個文件夾從目錄複製到遠端網路共享的解決方案。我想從包含數百個我不感興趣的文件夾的目錄中選擇幾個文件夾。我想使用正則表達式在 linux 中執行類似於 scp 的操作,但這在 robocopy 中不起作用:

c:\robocopy "c:\results\1319_TC1.*" "\\datastore\somefolder\"

試試這個:

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) }

引用自:https://serverfault.com/questions/272919