robocopy для обновления содержимого папки с локального на рабочий - PullRequest
0 голосов
/ 15 января 2019

Я хочу скопировать некоторые папки из моего локального в производство. Дело в том, что я хочу обновить производство только тогда, когда структура папок существует. Я также не могу использовать копирование вставки, так как имена файлов отличаются, когда я копирую вставку, я получаю 4 файла: файл 1, файл2, файл a, файл b.

Local:
    Directory1: file1, file2
    Directory2: abc.txt, hqyh.txt
Production:
    Directory1: xyz.txt, jht.txt
    Directory2: abc.txt, cde.txt
    Directory3: p.txt, q.txt
    Directory4: t.txt, u.txt

Мой результат:

Production:
    Directory1: file1, file2
    Directory2: abc.txt, hqyh.txt

Желаемый результат:

Production:
    Directory1: file1, file2
    Directory2: abc.txt, hqyh.txt
    Directory3: p.txt, q.txt
    Directory4: t.txt, u.txt

Код:

robocopy.exe C:\Local E:\Production /MIR

1 Ответ

0 голосов
/ 15 января 2019

robocopy не может делать то, что вы просите (пропустить папки, которые не существуют в источнике), когда вы запускаете его в родительских папках. Вместо этого запустите его на дочерних папках.

$src = 'C:\Local'
$dst = 'E:\Production'
Get-ChildItem $src | ForEach-Object {
    robocopy $_.FullName (Join-Path $dst $_.Name) /mir
}
...