none
Удаление всех файлов кроме новых RRS feed

  • Вопрос

  • Доброго время суток!

    Как после копирования оставить файл с последней датой и временем, а все остальные соответсвенно удать

    Напимер 2 файла, 1 создан в 11:01, 2 создан в 11:03 его нужно оставить, а со временем 11:01 удалить

    Move-Item -force C:\test1\050001*.IG -Destination c:\test2

    28 августа 2017 г. 17:40

Ответы

  • $currfiles = Get-ChildItem "C:\test1" | ?{ $_.Name -like "050001*.IG" };
    $distDir = "c:\test2";
    foreach ($file in $currfiles)
    {
    	$fileOnDistName = [System.IO.Path]::Combine($distDir, $file.Name);
    	if ([System.IO.File]::Exists($fileOnDistName))
    	{
    		$currFileLastWr = $file.LastWriteTime;
    		$distFileLastWr = (Get-Item $fileOnDistName).LastWriteTime;
    		if ($currFileLastWr > $distFileLastWr)
    		{
    			Move-Item -force $file.FullName -Destination $distDir
    		}
    	}
    	else
    	{
    		Move-Item -force $file.FullName -Destination $distDir
    	}
    }
    Примерно так.
    • Помечено в качестве ответа Pokesh 30 августа 2017 г. 1:41
    29 августа 2017 г. 6:10
  • 1) копируем

    2) удаляем: 

    dir c:\test1\050001*.IG | sort -Property LastWriteTime| select -SkipLast 1| del -WhatIf


    my blog: http://shserg.ru/

    • Помечено в качестве ответа Pokesh 13 сентября 2017 г. 5:00
    9 сентября 2017 г. 7:46

Все ответы

  • $currfiles = Get-ChildItem "C:\test1" | ?{ $_.Name -like "050001*.IG" };
    $distDir = "c:\test2";
    foreach ($file in $currfiles)
    {
    	$fileOnDistName = [System.IO.Path]::Combine($distDir, $file.Name);
    	if ([System.IO.File]::Exists($fileOnDistName))
    	{
    		$currFileLastWr = $file.LastWriteTime;
    		$distFileLastWr = (Get-Item $fileOnDistName).LastWriteTime;
    		if ($currFileLastWr > $distFileLastWr)
    		{
    			Move-Item -force $file.FullName -Destination $distDir
    		}
    	}
    	else
    	{
    		Move-Item -force $file.FullName -Destination $distDir
    	}
    }
    Примерно так.
    • Помечено в качестве ответа Pokesh 30 августа 2017 г. 1:41
    29 августа 2017 г. 6:10
  • Я не очень дружу с Robocopy, но мне кажется там есть такие варианты и проще.
    29 августа 2017 г. 6:12
  • Daniil, спасибо за ответ, я ожидал что то более простое :)

    Ребята может кто по проще вариант может предложить?

    30 августа 2017 г. 1:42
  • 1) копируем

    2) удаляем: 

    dir c:\test1\050001*.IG | sort -Property LastWriteTime| select -SkipLast 1| del -WhatIf


    my blog: http://shserg.ru/

    • Помечено в качестве ответа Pokesh 13 сентября 2017 г. 5:00
    9 сентября 2017 г. 7:46