Я бы не использовал Sleep, как упоминалось в комментариях, это означало бы, что у вас есть один длительный скрипт с минимальной возможностью восстановления после сбоя.Если сценарий завершается сбоем, действия копирования не выполняются до его повторного запуска.
Вместо этого используйте планировщик заданий, чтобы запускать сценарий каждый час.Он предназначен для запуска задач по расписанию и имеет опции для устранения сбоев и повторного запуска.
Каждая задача запускается в своем собственном процессе, поэтому, если предыдущая задача дает сбой, она не влияет на следующую задачу.- который все еще работает как обычно.
Нет необходимости пакетировать изображения в папки, вы можете использовать Select-Object
, чтобы сделать это для вас.
Get-ChildItem C:\folder\source -File -Recurse | Select-Object -First 1000 | Move-Item -Destination \\images\web\upload -WhatIf
Это выберетпервые 1000 файлов по имени и пути:
C:\folder\source\imageA.jpg
C:\folder\source\imageB.jpg
C:\folder\source\folderA\imageF.jpg
C:\folder\source\folderA\imageE.jpg
C:\folder\source\folderB\imageD.jpg
C:\folder\source\folderC\imageC.jpg
и переместите их все в папку \\images\web\upload
:
\\images\web\upload\imageA.jpg
\\images\web\upload\imageB.jpg
\\images\web\upload\imageC.jpg
\\images\web\upload\imageD.jpg
[etc]
Примечание. Предполагается, что вы используете современную версию Powershell.так как параметр -File
недоступен в более ранних версиях.