ProductivityTools.GetDateName.psm1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
function GetFormat()
{
    return "yyyy.MM.dd.HH.mm.ss"
}
function Get-DateName 
{
    [cmdletbinding()]
    param ([string]$Prefix,[string]$Suffix)

    Write-Verbose "Prefix: '$Prefix'"
    Write-Verbose "Suffix: '$Suffix'"
    $dt = get-date -format $(GetFormat)
    $result=$Prefix+$dt+$Suffix
    Write-Verbose "Result: $result"
    return $result
}

function Get-LastDateDirectoryName
{
    [cmdletbinding()]
    param ([string]$Directory,[string]$Prefix,[string]$Suffix)
    
    Write-Verbose "Directory $Directory"
    Write-Verbose "Prefix: '$Prefix'"
    Write-Verbose "Suffix: '$Suffix'"

    $lastDate=[DateTime]::MinValue;
    $items = Get-ChildItem -Path $Directory -Filter "$Prefix*$Suffix"
    foreach($item in $items)
    {
        $directoryName=$item.Name;
        $directoryName=$directoryName.Replace($Prefix,"")
        $directoryName=$directoryName.Replace($Suffix,"")
        $format=GetFormat
        $directoryDate=[datetime]::ParseExact($directoryName,$format,$null)
        
        if ($directoryDate -gt $lastDate)
        {
            $lastDate=$directoryDate
        }
        return $lastDate
    }
}

Export-ModuleMember Get-DateName 
Export-ModuleMember Get-LastDateDirectoryName