Не работает скрипт, который должен преобразовывать изображение используя PowerShell и FFMPEG
Смысл в чем, есть скрипт на PowerShell, он должен находить изображения, преобразовывать с помощью FFMPEG, удалять старые, а потом упаковывать в архив, желательно в .tar, но проблема в том, что он не работает и я не могу понять почему, он просто отказывается работать.
$tarPath = "C:\Program Files\7-Zip\7z.exe"
try {
# Создание временной папки
$tempFolder = New-Item -ItemType Directory -Path (Join-Path $pwd "tmp")
# Обработка файлов и конвертация их в формат webP
$fileTypes = "*.jpg", "*.png", "*.jpeg"
Get-ChildItem -Path "E:\Test" -Filter ($fileTypes -join ',') -Recurse | ForEach-Object {
$outputFile = Join-Path $tempFolder.FullName "$($_.BaseName).webP"
ffmpeg -y -i $_.FullName -vf "scale=w=-2:h=-2" $outputFile
if(Test-Path $outputFile) {
& $tarPath a -ms -mhe -si "E:\Test\example.tar" $outputFile
Write-Host "Добавлен файл $outputFile в архив"
Remove-Item $outputFile
}
}
# Добавление файлов в архив и удаление исходных файлов
$excludePath = @($tempFolder.FullName)
$excludePath += "E:\Test\*.jpg", "E:\Test\*.png", "E:\Test\*.jpeg"
& $tarPath a -ms -mhe -si "E:\Test\example.tar" -x@($excludePath) -r
Write-Host "Добавлены все файлы в архив"
# Удаление временной папки
Remove-Item $tempFolder -Recurse -Force
Write-Host "Удалена временная папка"
# Удаление скрипта
Remove-Item $MyInvocation.MyCommand.Path
Write-Host "Удален скрипт"
} catch {
Write-Host "Произошла ошибка: $_"
Read-Host -Prompt "Press Enter to exit"
}