Update CLI command
-
Hello,
I might have a rather specific question - is there any possibility to launch Notepad++'s auto-updater from Windows commandline (powershell/cmd)?
Use case is that I am working in corporate enviroment and I am requested to keep my tools updated (Notepad++ included).
Since I have under my supervision something like 10 instalations at different servers, I would like to make a centralised (Ansible perheaps?) script which will connect to each server, and run some command to launch auto-update.
I am avare that re-installing with Notepad++ binary downloaded at a side might do the trick, but I am curious anyway about the command :-)
Thank you,
Michal -
I’ve never done it, but from this piece of source code, I believe that when Notepad++ runs the updater, it is essentially running the bundled gup.exe, possibly with some command-line parameters
When I did the search through the code on the
getWingupCommandsand things that influence it, I could only find the Plugins Admin using the command-line options. Oh, no, some more searching finds that when you run it through the ? > Update Notepad++ entry, it ends up running this section of code which didn’t use thegetWingupCommands()call, but still adds command-line arguments.: you can dig into that section of code to see what command-line arguments it runs. -
@Michal-Šunka To add to what @PeterJones posted, you can run
gup.exe --help(with two leading – dashes) and it’ll show you the command line options.Typically, when someone selects the
? / Update Notepad++menu option it runs
"C:\Program Files (x86)\Notepad++\updater\gup.exe" -verbose -v8.55where the-v8.55is the current version of Notepad++.gup.exe has a web site, https://wingup.org/, but the details of the command line options don’t seem to be explained so you can figure out what works best for your setup.
-
All the gup.exe does is to check if there is a newer version than specified by the string input parameter is available. It does not handle the update itself. You would have to code it for yourself.
For example like this in Powershell 5.1 for the 64bit version of Notepad++.
[string]$ScriptFolder = $PSCommandPath | Split-Path -Parent $Notepad = Get-ItemProperty -LiteralPath 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\Notepad++' $InstalledVersion = $Notepad.DisplayVersion $UpdateCheck = Invoke-WebRequest -Uri "https://notepad-plus-plus.org/update/getDownloadUrl.php?version=$InstalledVersion" $UpdateCheckAnswer = ([xml]$UpdateCheck.Content).GUP if ($UpdateCheckAnswer.NeedToBeUpdated -eq 'yes') { $Filename = $UpdateCheckAnswer.Location.Split('/')[-1] Invoke-WebRequest -Uri $UpdateCheckAnswer.Location -OutFile "$ScriptFolder\$Filename" & "$ScriptFolder\$Filename" '/S /closeRunningNpp' }