Сплит имя файла для макс (Дата изменения) - PullRequest
0 голосов
/ 28 июня 2018

У меня есть требование исключить файлы на основе года, названия страны и даты последнего изменения из этого конкретного года, а остальные файлы из этого конкретного года и страны, перемещенной в папку архива

для примера

SS_MM_Master_finland_2018.xlsx last modified date 27/06/2018 19:00.

SS_MM_Master_finland_2017.xlsx last modified date 27/06/2017 19:00.

в этом случае одна и та же страна и год отличаются в имени файла, поэтому исключается конкретная дата последнего изменения года, поэтому оба файла будут исключены

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

Я пытался

$Files = Get-ChildItem -File C:\Setup | select Name, LastWriteTime
foreach($FileName in $Files)
{
    ##### - Split elements: 0 = SS, 1 = MM, 2 = Master, 3 = Country, 4 = Year
    $MyFile = $FileName # Get FileName
    $fileCountry = $FileName.Name[0].Split('_')[3] # Get Country
    $fileYear = $FileName.Name[0].Split('_')[4] # Get Year
}

как получить максимум (дата последнего изменения) в зависимости от страны и года

Я попробовал ниже упомянутый запрос сегодня и получаю все значения года, страны, но как получить максимум (дата последнего изменения для этого конкретного года и страны

$Files = Get-ChildItem -File C:\Users\rramesnc\Documents\Advisory_Rate | select Name, LastWriteTime
foreach($FileName in $Files)
{

####- Split elements: 0 = SS, 1 = MM, 2 = Master, 3 = Country, 4 = Year
#### - Get FileName:
$MyFile = $FileName

#### - Get Country:

$FileName -split "-"

#### - Get Year

$fileYear = $FileName.Name.Split("_")[4,3]

$fileCountry.Name

#### - Sample getting the year value from the ".LastWriteTime":

$FileName

$fileYear

$FileName.LastWriteTime
...