У меня есть какая-то папка, внутри папки есть файл и содержит идентификатор, затем мне нужно выбрать одну из папок по времени последней записи. Я пробовал таким образом
Function Test
{
[CmdletBinding()]
param(
[Parameter(Mandatory = $true, Position = 0)]
$Path,
[Parameter(Mandatory = $true, Position = 2)]
[string]$Pattern
)
$global:Result = '' | Select-Object @{Name = 'Exists'; Expression = {$false}}, FileName, Directory, @{Name = 'Attempts'; Expression = {1}}
$file = Select-String -Path $Path -Pattern $Pattern -SimpleMatch -ErrorAction SilentlyContinue | Select-Object -First 1
if ($file) {
$file = Get-Item -Path $file.Path
$global:Result = [PSCustomObject]@{
Exists = $true
FileName = $file.FullName
Directory = $file.DirectoryName
Attempts = 1
}
}
else {
Write-Host "Not Found"
}
}
$ID = "8538"
$IDName = "ID_LST"
$Path = "D:\Folder\*\$IDName\"
Test -Path $Path -Pattern "$ID"
$global:Result | Format-List
В результате выбирается не папка, основанная на времени последней записи, а основанная на int имени папки.