Я использую следующий скрипт для архивирования всего до 1 января 2013 года:
foreach ($i in Get-ChildItem "O:\Projects” -Force -Recurse)
{
if ($i.LastWriteTime -gt ($(Get-Date).AddDays(-649)))
{
robocopy $i.FullName "A:\Operations\Projects" /Z /S /MOVE /MIR
}
}
проблема в том, что скрипт не копирует точное дерево каталогов. это только копирование папки, содержащей соответствующий файл, в корень целевого каталога.
В качестве примера это будет представлять нашу структуру папок:
- Проект А
- котировка
- QuoteA.pdf (последнее изменение 6/2011)
- закрытие
- CloseoutA.pdf (последнее изменение 11/2011)
- котировка
- Проект Б
- котировка
- QuoteB.pdf (последнее изменение 10/2012)
- закрытие
- CloseoutB.pdf (последнее изменение 4/2013)
- котировка
мой скрипт выше приведет к следующей целевой папке:
- котировка
- QuoteA.pdf
- QuoteB.pdf
- закрытие
- CloseoutA.pdf
Приведенный выше пример чрезвычайно прост. Некоторые файлы имеют глубину 8 или 9 папок. в исходной директории около 30 000 папок. Мне нужен полный путь к соответствующему файлу, чтобы он остался нетронутым при перемещении. Как мне это сделать?
powershell
archiving
robocopy
jchap1590
источник
источник