webmail123 Ответов: 1

Папки Robocopy со строкой


У меня более 200 тысяч папок, которые мне нужно переместить из одного сетевого расположения в другое сетевое расположение. Я хочу сделать это с Робокопией.
Мне нужна помощь с двумя вещами

1. я хочу переместить папки, начинающиеся со строки '19'
2. я хочу переместить папки, созданные до 2019 года.

Что я уже пробовал:

robocopy \\netwroksourcepath\path\19* \\netwrokdestinationpath\path\ /E /MOVE /MT

Richard MacCutchan

И что же? В чем же вопрос?

1 Ответов

Рейтинг:
9

Richard Deeming

программы | Майкрософт документы[^]

В исходном каталоге нет поддержки подстановочных знаков. Вам нужно будет использовать for петля для выдачи отдельного robocopy команда для каждой соответствующей папки.

FOR /D %G In ("\\networksourcepath\path\19*") DO robocopy %G \\networkdestinationpath\path\%~nG /E /MOVE /MT
(В пакетном файле вам нужно будет удвоить % персонажи.)

Я не вижу простого способа скопировать папки на основе даты их создания в пакетный файл. Возможно, для этого Вам придется использовать Powershell.
$MaxDate = Get-Date -Date "2019-01-01"
Get-ChildItem "\\networksourcepath\path" -Attributes Directory | Where-Object CreationTime -lt $MaxDate | ForEach-Object -Process { 
    $destination = "\\networkdestinationpath\path\$($_Item.Name)"
    robocopy $_.FullName $destination /E /MOVE /MT
}


Maciej Los

5ed!

webmail123

Отличный. Спасибо за ответ. О перемещении папок, как мы можем перемещать папки старше 45 дней?

Richard Deeming

Попробуй:

$Now = Get-Date
$MaxDate = $Now.Date.AddDays(-45)