Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

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

Ветеран


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

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


есть родные для PoSh типы данных string и int
проверку директории через [System.IO.Directory]::Exists допустим, понять можно - штатные способы "проглотят", например, путь к реестру
хотя в целом - это простой конвейер, если что-то не так с директорией, содержимым - сам командлет выдаст ошибку снабжённую всеми необходимыми атрибутами, на языке пользователя . "Плюнуть" на экран красный текст на иностранном языке - это для кого такое "удобство"? Оформляете в виде вызываемого скрипта, но он не формирует события ошибки.
Для создания временных файлов есть стандартные механизмы и места, для удаления файлов - тоже. Зачем вместо штатных команд использовать обращения к библиотекам .NET?
Синтетическое поле для каждого файла с номером - зачем?! - Они уже в пронумерованном массиве
Вместо округления результата деления и отдельный итератор для групп используют целочисленное деления и остаток от целочисленного деления.
Не надо явно указывать `r`n - это платформозависимое соглашение, а что PoSh, что ffmpeg работаею и на mac и на linux. Не надо в памяти формировать файлы - пишите сразу строки в файл
Пути к ffmpeg самое место в параметре по умолчанию, а не в середине скрипта
А вот результат работы ffmpeg как раз должен проверяться - сейчас если он не сможет создать видео (места на диске не хватило), скрипт всё равно бодро рапортует об успехе и удаляет исходные изображения. Наличие выходного файла тоже
Вместо велосипеда с PromptForChoice можно просто вызвать Remove-Item с параметром -Confirm. Вы так уверены, что выдавать на экран простыню из 960 имён удалённых файлов - хорошая идея? Если они важны - не лучше ли тогда использовать Write-Output - чтобы можно было их по необходимости передать по конвейеру и т.п.?
switch с единственным параметром тоже умиляет

Отправлено: 13:20, 09-08-2018 | #12