我正在尝试创建一个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。它按照它应该的顺序读取和复制文件,但是一旦它复制了列表,它就开始整个目录的整个副本,而不是在文本文件中的文件处停止。
1条答案
按热度按时间jyztefdp1#
文件的末尾是否有多余的一行?
即,它遍历所有文件名,则最后一行将转换为:
因此:
例如,robocopy根文件夹:第一个月
编辑:
尝试将文件输出到屏幕以验证输入文件是否正确并列出预期的目录。