Я хочу обновить определенный пакет, но только если он не установлен. Я запускаю скрипт обновления, который сохраняет up2date всех моих компьютеров. cup all
choco upgrade all
хорошо работают именно для этой цели, но не работают с приложениями, которые устанавливаются локально под пользовательскими данными приложения, такими как f.lux. Поэтому я делаю это, чтобы обойти разных пользователей и установить те приложения, которые устанавливают пространство пользователя:
$orgUserProfile=$Env:USERPROFILE
$orgLocalAppData=$Env:LOCALAPPDATA
$Env:USERPROFILE="C:\users\Alex"
$Env:LOCALAPPDATA="${Env:USERPROFILE}\AppData\Local"
# Installed to c:\Users\Alex\AppData\Local\SourceTree
choco upgrade sourcetree
choco upgrade f.lux
$Env:USERPROFILE="C:\users\Lisa"
$Env:LOCALAPPDATA="${Env:USERPROFILE}\AppData\Local"
# I'm not sure updates will work for lisa, not sure I want to force it, it seems choco is not multi-user
choco upgrade f.lux
$Env:USERPROFILE=$orgUserProfile
$Env:LOCALAPPDATA=$orgLocalAppData
cup all
Однако на некоторых моих компьютерах у меня нет sourcetree, уже установлен f.lux, и я не хочу, чтобы мой скрипт обновления устанавливал их.
Есть ли простой способ сделать шоколадное обновление, только если оно уже установлено? Поэтому мне не нужно разбирать список вручную
PS: