[英]How to copy **only** the folder content of a directory in powershell script with robocopy
[英]Recursive Folder/File Copy Powershell Script - Robocopy won't stop copying once done with list
我正在嘗試提出一個 PS 腳本,該腳本從 txt 文件中讀取文件夾名稱並遞歸地查找源目錄中的文件夾/文件,然后使用 robocopy 復制到目標目錄,同時保留文件夾名稱、結構和時間戳。 看起來(在日志輸出中)腳本沿着列表向下移動並復制文件夾和文件,但當它到達列表的末尾時,它開始復制源目錄中的所有其他內容。
txt 文件數據如下所示:
400033
400042
400045
400047
400058
etc..
“腳本”看起來像:
foreach ($line in
[System.IO.File]::ReadLines("C:\temp\filecopy\TEST_400210_400033.txt")) {
robocopy "J:\testSRC\$line" "S:\testDEST\$line" /DCOPY:DAT /E /R:3 /W:15 /log+:C:\temp\logs\TEST_ROBOCOPY_filecopy_Log1.txt /v /tee
}
誰能指出我正確的方向?
我已經嘗試在一個完全不同的腳本中使用 Powershell 的Copy-Item
並且能夠使該腳本工作但它太慢了。 現在正在嘗試 robocopy。 它按照它應該的順序讀取和復制它應該的文件,但是一旦它復制了列表,它就會開始整個目錄的完整副本,而不是在文本文件中的文件處停止。
文件末尾是否有額外的一行?
400033
400042
400045
400047
400058
[Blank Line]
即它遍歷所有文件名然后最后一行將轉換為:
$line = ""
所以:
robocopy "J:\testSRC\" "S:\testDEST\" /DCOPY:DAT /E /R:3 /W:15 /log+:C:\temp\logs\TEST_ROBOCOPY_filecopy_Log1.txt /v /tee
例如 robocopy 根文件夾: robocopy "J:\testSRC\"
編輯:
嘗試將文件輸出到屏幕以驗證輸入文件是否正確並列出預期的目錄。
foreach ($line in
[System.IO.File]::ReadLines("C:\temp\filecopy\TEST_400210_400033.txt")) {
Write-Host "J:\testSRC\$line"
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.