iNNOKENTIY21
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Код: param ( [Io.FileInfo[]] $Files, [string] $Prefix, [string] $Suffix, [string] $Destination ) function Remove-Prefix([string] $Str) { if ($Str.StartsWith($Prefix)) { $Str.Remove(0, $Prefix.Length) } else { $Str } } function Remove-Suffix([string] $Str) { if ($Str.EndsWith($Suffix)) { $Str.Remove($Str.Length - $Suffix.Length) } else { $Str } } function Clear-Name([string] $Str) { [string] $tmp = Remove-Prefix $Str Remove-Suffix $tmp } function Get-SmallerFile([Io.FileInfo] $File1, [Io.FileInfo] $File2) { if ($File1.Length -lt $File2.Length) { $File1 } else { $File2 } } [Io.FileInfo[]] $SmallerFiles = @() foreach ($File in $Files) { if (($File.BaseName -notlike "$Prefix*") -and ($File.BaseName -notlike "*$Suffix")) { continue } [string] $CleanName = Clear-Name -Str $File.BaseName [string] $FullName = "{0}\{1}{2}" -f ( $File.DirectoryName, $CleanName, $File.Extension ) if ($Files.FullName -notcontains $FullName) { continue } [Io.FileInfo] $OriginFile = $Files | Where-Object FullName -eq $FullName $SmallerFiles += Get-SmallerFile -File1 $OriginFile -File2 $File } $SmallerFiles |
|