Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


К сожалению, на радостях я тупо забыл про:
Цитата nik123456654321:
переименовать эти .jpg фалы по очереди , начиная с 0 до 31 »
Исправленная версия:
Скрытый текст
Код: Выделить весь код
$sRootFolder  = 'C:\Мои проекты\0273\Photo'
$sArchiveFile = "$sRootFolder\Photo.zip"
$sExtension   = 'jpg'

if([System.IO.Directory]::Exists($sRootFolder)) {
    $oDirectoryInfo = Get-ChildItem -Path $sRootFolder -Directory
    
    if($oDirectoryInfo -is [System.IO.DirectoryInfo]) {
        $aFileInfo = @(Get-ChildItem -Path "$($oDirectoryInfo.FullName)\*" -Include "*.$sExtension" -File)

        if($aFileInfo.Count -eq 32) {
            $aFileInfo | ForEach-Object -Process {
                do {
                    $sNewFileName = "$($oDirectoryInfo.FullName)\$([System.IO.Path]::GetRandomFileName())$($_.Extension)"
                } until (-not [System.IO.File]::Exists($sNewFileName))

                [System.IO.File]::Move($_.FullName, $sNewFileName)
            }

            $aFileInfo = @(Get-ChildItem -Path "$($oDirectoryInfo.FullName)\*" -Include "*.$sExtension" -File) | Sort-Object -Property 'CreationTime'
            $aFileInfo | ForEach-Object -Begin {
                $iCount = 0
            } -Process {
                [System.IO.File]::Move($_.FullName, "$($oDirectoryInfo.FullName)\$(($iCount++).ToString())$($_.Extension)")
            }

            $aFileInfo = @(Get-ChildItem -Path "$($oDirectoryInfo.FullName)\*" -Include "*.$sExtension" -File)
            try {
                Compress-Archive -Path $aFileInfo -DestinationPath $sArchiveFile -CompressionLevel NoCompression -Force -ErrorAction SilentlyContinue
                Write-Host "Archive file [$sArchiveFile] created." -ForegroundColor Green
            } catch {
                Write-Host "Can't create archive file [$sArchiveFile]." -ForegroundColor Red
            }
        } else {
            Write-Host "Need exactly 32 $sExtension files in subfolder [$($oDirectoryInfo.FullName)]." -ForegroundColor Red
        }
    } else {
        Write-Host "Need at least one (and no more) subfolder in root folder [$sRootFolder]." -ForegroundColor Red
    }
} else {
    Write-Host "Can't find root folder [$sRootFolder]." -ForegroundColor Red
}

P.S. Надо же было столько возиться, чтобы сохранить оригинальные даты файлов, а потом открыть новосозданный архив в 7-Zip и внезапно обнаружить, что командлет Compress-Archive не сохраняет в архиве даты создания файлов .

Последний раз редактировалось Iska, 21-08-2019 в 22:03.

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:48, 21-08-2019 | #9