Robocopy在保留时间戳的同时使用.txt文件输入移动选择文件夹和内容

时间:2019-05-08 19:48:50

标签: powershell robocopy

我想使用.txt文件将选择的文件夹和内容(子文件夹和文件)从Source目录移动到Destination目录,以读入选择的文件夹名称。

我尝试从多台计算机上运行。

我尝试获取文件夹和文件的所有权。

我尝试将“所有人”的控制权全部授予。

我删除并重新创建了src和dst文件夹及内容。

我尝试删除“ / MOVE / E”之后的所有其他选项。

gc "C:\testText.txt" | % { robocopy "C:\testSrc" "C:\testDst" 
$_ /MOVE /E /R:3 /W:15 /MT:128 /log+:C:\log.txt /v /tee }

我希望该脚本从.txt文件中读取要从源目录移动到目标目录的选择文件夹的文件夹名称(以及它们的内容和时间戳)。

脚本仅复制文件夹和子文件夹,而不复制文件。它也不删除源数据,但我想这与无法复制文件的原始问题有关。

testText.txt内容(这些是位于源目录中的文件夹的名称):

0000003000
0000003001
0000003002

日志输出(对于testText.txt中列出的每个文件夹,输出相同):

开始时间:2019年5月8日,星期三,12:33:27 PM    来源:C:\ testSrc \      目的地:C:\ testDst \

Files : 0000003000

选项:/ V / TEE / S / E / DCOPY:DA / COPY:DAT / MOVE / MT:128 / R:3 / W:15



           Total    Copied   Skipped  Mismatch    FAILED    Extras
Dirs :         4         4         1         0         0         0
Files :        0         0         0         0         0         0
Bytes :        0         0         0         0         0         0
Times :   0:00:00   0:00:00                       0:00:00   0:00:00
Ended : Wednesday, May 8, 2019 12:33:27 PM

1 个答案:

答案 0 :(得分:0)

这有效。

foreach($line in 
[System.IO.File]::ReadLines("C:\testText.txt")) { 

robocopy "C:\testSrc\$line" "C:\testDst\$line" /MIR /DCOPY:T /E /R:3 /W:15 
/MT:128 /log+:C:\Log.txt /v /tee

rm -R "C:\testSrc\$line"

}