Powershell
使用 robocopy 將多個文件夾複製到一個目的地
我正在尋找使用 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) }