none
Перенос файлов из одной папки в другую RRS feed

  • Вопрос

  • Друзья, добрый день!

    Я недавно начал изучать PowerShell и не могу самостоятельно решить задачу, прошу Вас помочь мне.

    По прошествии определенного времени я переношу файлы из одного хранилища в другое. 

    Сложность в том, что таких папок более двухсот и когда цикл просматривает данные, он должен понимать из какой папки он взял данные, чтобы потом вырезать их и вставить в такую же папку, но уже в архив. Если папки  нет, то он ее создает.

    Прошу помочь в построении этой логики.

    Путь1:

    E:\OneDrive\7925-000-00-00

    Путь2:

    E:\Ahchive\7925-000-00-00

    В данный момент написан следующий цикл, он определяет когда какой файл был создан и принимает решение о его перемещении, информация ниже:

    $Directory = "E:\OneDrive\Test"
    $Days = -5
    $Exclude = ".txt"

    $Files = dir -path $Directory -Recurse -Include *.* -Exclude $Exclude
    $Today = Get-Date
    $WeekAgo = $Today.AddDays($Days)
    $LogName = "Log-" + (Get-Date -format "yyy-mm-dd") + ".log"

    ForEach ($File in $Files)
        {
            if($File.LastWriteTime -lt $WeekAgo)
            {
               "Не хватает знаний"
            }
        }


    • Изменено Ilya_Strizh 25 февраля 2019 г. 14:04
    25 февраля 2019 г. 14:02

Ответы

  • Друзья, мой вопрос решен. 

    Прошу уточнить, имеется ли возможность перенести частично данные из директории 

    А в директорию B

    Но при этом, чтобы дата изменения в директории "А" оставалась бы без изменений?

    Я понимаю, что только, что убрал оттуда 70% файлов и логично, что она изменилась, однако возможно, что есть какой-то способ.

    эмнип у робокопи есть парметр копирования по дате (что скорее всего будет быстрее чем пошем) + вроде был ключ позволяющий сохранить исходную дату

    The opinion expressed by me is not an official position of Microsoft



    • Изменено Vector BCOModerator 26 февраля 2019 г. 7:26
    • Предложено в качестве ответа Svolotch 26 февраля 2019 г. 9:00
    • Помечено в качестве ответа Vector BCOModerator 26 февраля 2019 г. 20:05
    26 февраля 2019 г. 6:47
    Модератор

Все ответы

  • Ну собственно в цикле используйте командлет Move-Item. Если я правильно понял задачу.

    Move-Item -Path <path> -Destination <path>

    Так же можете справку глянуть Get-Help Move-Item. 

    25 февраля 2019 г. 16:29
  • Ну собственно в цикле используйте командлет Move-Item. Если я правильно понял задачу.

    Move-Item -Path <path> -Destination <path>

    Так же можете справку глянуть Get-Help Move-Item. 

    лучше посмотрите справку robocopy так как возможны проблемы с сохранением/получением разрешений на каталоги и файлы а так же возможны проблемы с длинными путями (>255 символов)

    The opinion expressed by me is not an official position of Microsoft

    25 февраля 2019 г. 16:43
    Модератор
  • avalanche714 и Vector BCO, огромное спасибо за участие!

    Пригодилась функция RoboCopy, не пришлось изобретать велосипед:)

    Настройки следующие:

    robocopy `
    E:\OneDrive\Test `
    E:\Test\Folder_1 `
    /e `
    /minage:5 `
    /dcopy:T `
    /move `
    /mov

    p.s. На первых этапах стараюсь переносить построчно. Жаль, что строки в таком формате строки нельзя комментировать.


    • Изменено Ilya_Strizh 26 февраля 2019 г. 6:42
    26 февраля 2019 г. 6:15
  • Друзья, мой вопрос решен. 

    Прошу уточнить, имеется ли возможность перенести частично данные из директории 

    А в директорию B

    Но при этом, чтобы дата изменения в директории "А" оставалась бы без изменений?

    Я понимаю, что только, что убрал оттуда 70% файлов и логично, что она изменилась, однако возможно, что есть какой-то способ.

    26 февраля 2019 г. 6:42
  • Друзья, мой вопрос решен. 

    Прошу уточнить, имеется ли возможность перенести частично данные из директории 

    А в директорию B

    Но при этом, чтобы дата изменения в директории "А" оставалась бы без изменений?

    Я понимаю, что только, что убрал оттуда 70% файлов и логично, что она изменилась, однако возможно, что есть какой-то способ.

    эмнип у робокопи есть парметр копирования по дате (что скорее всего будет быстрее чем пошем) + вроде был ключ позволяющий сохранить исходную дату

    The opinion expressed by me is not an official position of Microsoft



    • Изменено Vector BCOModerator 26 февраля 2019 г. 7:26
    • Предложено в качестве ответа Svolotch 26 февраля 2019 г. 9:00
    • Помечено в качестве ответа Vector BCOModerator 26 февраля 2019 г. 20:05
    26 февраля 2019 г. 6:47
    Модератор
  • Vector BCO, огромное спасибо! 

    26 февраля 2019 г. 7:13
  • робокопи не функция
    26 февраля 2019 г. 9:01