Завершающий (надеюсь) пост про QR. Пост-приквел.
Ранее я выкладывал отдельно модуль для генерации кодов в IDE Lazarus и консольную утилиту, но совсем не рассказал с чего всё началось.
А началось всё, как водится, с простого и безобидного желания растянуть чаепитие до рамок бесконечности. Ну, хотя бы примерно.
Поступила задача накуролесить QR-кодов из множества url, бережно сложенных в текстовый файл. Заниматься копипастой и веб-генерацией — долго. А вот написать консольную утилиту и с помощью простого ps1-скрипта скормить ей весь массив данных — это быстро! Помните про «день потерять, потом за пять минут долететь«? Нет?! Тогда ссылка.
Попробую смоделировать условия и для этого возьму заглавную страницу этого же сайта. Она у меня выступит массивом ссылок. Знакомьтесь — переменная $links. Далее создам папку рядом с файлом скрипта и туда (впоследствии) сложу сгенерированные картинки в формате png и размером в 500 пикселей.
Собственно, код:
# Получаем список ссылок с предустановленной фильтрацией #
$links = ((Invoke-Webrequest -Uri https://ngdream.ru/ -UseBasicParsing).Links).href -like "*2024*"
# Переменная с именем директории #
$dir = "$PSScriptRoot\qr"
# Создаём директорию по пути из переменной $dir #
New-Item -Path $dir -ItemType Directory -Force | Out-Null
# Запускаем перебор #
foreach ($link in $links)
{
# Генерируем случайное имя файла #
$randomname = [System.IO.Path]::GetRandomFileName()
# Путь к файлу изображения с QR-кодом #
$filepath = "$dir\$randomname"
# Генерируем QR-код #
Start-Process -FilePath qrcg.exe -ArgumentList "$link $filepath png 500" -NoNewWindow
}
Кстати сказать, у PowerShell есть свой собственный отличный модуль для генерации QR.