Как программно проверить наличие обновлений установленных программ с помощью winget?
Я потратил невероятное количество времени, пытаясь использовать .
Если я просто бегу или
Поскольку собственно обновление программ через
Но если я это сделаю
Однако есть функция под названием «экспорт», которая якобы делает именно то, что я хочу: выводит файл JSON с названиями программ и... без версий. Однако у него есть секретный флаг под названием
winget export -o "tmp.txt" --include-versions
... включает только текущую установленную версию , а не столбец «доступная версия»! Это делает невозможным использование вывода JSON для определения наличия доступного обновления для той или иной программы!
О чём они думали, когда проектировали эту систему? Что они могут иметь в виду, что я должен сделать, чтобы узнать эту информацию? В конце концов, мне действительно нужно найти способ регулярного выражения вывода текста для человека? Это кажется таким неправильным и таким глупым, особенно когда у них есть буквальная функция «экспорта в JSON», которая позволяет избежать важной информации «доступной версии».
Как всегда: должно быть, я что-то упускаю.
1 ответ
Если только тыwinget
глючит или что-то в этом роде (в последних версиях это не для меня)1.4.10173
версия):
winget upgrade
без каких-либо переключателей по умолчанию просто перечисляет пакеты, которые можно обновить.
winget upgrade --all
это команда для обновления всего.
Документация также подтверждает такое поведение.
Чтобы определить, какие приложения нуждаются в обновлении, просто используйте обновление без каких-либо аргументов, чтобы отобразить все доступные обновления.
Для одного пакета вы также можете использоватьwinget list "packagename"
илиwinget list package.id
.
Список всех упомянутых командName
,Id
,Version
,Available
,Source
столбцы. Данные разделяются разным количеством пробелов, поэтому, если вам придется их использовать, потребуется расширенная пакетная обработка.