首页 > 解决方案 > Robocopy 在保留时间戳的同时使用 .txt 文件输入移动选择文件夹和内容

问题描述

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

我试过从多台机器上运行。

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

我尝试将完全控制权授予“每个人”。

我删除并重新创建了 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

标签: powershellrobocopy

解决方案


这有效。

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"

}

推荐阅读