User Tools

Site Tools


powershell_check_for_updates

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
powershell_check_for_updates [2015/02/21 07:56] stephenpowershell_check_for_updates [2017/02/07 21:27] (current) – external edit 127.0.0.1
Line 3: Line 3:
 <code powershell> <code powershell>
 #requires -version 3.0 #requires -version 3.0
- +
 #### Check for updates #### Check for updates
-#### Version 1.17 +#### Version 1.36 
-#### Last updated 2015-02-21+#### Last updated 2017-02-07
 #### The canonical version of this script is at http://tallguyracing.com/wiki/doku.php?id=powershell_check_for_updates #### The canonical version of this script is at http://tallguyracing.com/wiki/doku.php?id=powershell_check_for_updates
-  + 
 $appsToCheck = @{ $appsToCheck = @{
-          'Dummy'            = 'Dummy'           +          'Dummy'            = 'Dummy' 
-        ; 'ThisScript'       = '1.16+        ; 'ThisScript'       = '1.31
-        ; 'Anki'             = '2.0.31+        ; 'Anki'             = '2.0.36
-        ; 'ConEmu'           = '141208+        ; 'ConEmu'           = '160619
-        ; 'Paint.NET'        = '4.0.5+        ; 'Paint.NET'        = '4.0.9
-        ; 'Rockbox'          = '3.13' +#       ; 'Rockbox'          = '3.13' 
-        ; 'DokuWiki'         = '2014-09-29+#       ; 'DokuWiki'         = '2013-05-10
-        ; 'Notepad++'        = '6.7.4        # Hopefully, this can be reverted to a fully automatic check in the future. +        ; 'Notepad++'        = '6.9.2        # Hopefully, this can be reverted to a fully automatic check in the future. 
-      ; 'Notepad++'        = 'Notepad++\notepad++.exe+       ; 'Notepad++'        = 'Notepad++\notepad++.exe'
-        ; 'Inkscape'         = '0.48.5' +
-        ; 'Hugin'            = '2014.0.0' +
-        ; 'Stellarium'       = '0.13.2'+
         ; 'GIMP'             = 'GIMP 2\bin\gimp-2.8.exe'         ; 'GIMP'             = 'GIMP 2\bin\gimp-2.8.exe'
         ; '7zip'             = '7-Zip\7z.exe'         ; '7zip'             = '7-Zip\7z.exe'
         ; 'WinMerge'         = 'WinMerge\WinMergeU.exe'         ; 'WinMerge'         = 'WinMerge\WinMergeU.exe'
-        ; 'Foobar2000'       = 'foobar2000\uninstall.exe'+#       ; 'Foobar2000'       = 'foobar2000\foobar2000.exe'
         ; 'Fiddler'          = 'Fiddler2\fiddler.exe'         ; 'Fiddler'          = 'Fiddler2\fiddler.exe'
-        ; 'Process Explorer' = 'C:\sysinternals\procexp.exe' +        ; 'Process Explorer' = 'C:\tools\sysinternals\procexp.exe' 
-        ; 'Process Monitor'  = 'C:\sysinternals\procmon.exe' +        ; 'Process Monitor'  = 'C:\tools\sysinternals\procmon.exe' 
-        ; 'VLC'              = 'VideoLAN\VLC\vlc.exe'+       ; 'VLC'              = 'VideoLAN\VLC\vlc.exe'
         ; 'FileZilla'        = 'FileZilla FTP Client\filezilla.exe'         ; 'FileZilla'        = 'FileZilla FTP Client\filezilla.exe'
-        ; 'ImageMagick'      = 'ImageMagick\mogrify.exe' +#        ; 'ImageMagick'      = 'ImageMagick\magick.exe' 
-        ; 'TortoiseSVN'      = 'TortoiseSVN\bin\TortoiseSVN.dll'+       ; 'TortoiseSVN'      = 'TortoiseSVN\bin\TortoiseSVN.dll'
         ; 'WinDirStat'       = 'WinDirStat\windirstat.exe'         ; 'WinDirStat'       = 'WinDirStat\windirstat.exe'
-        ; 'Expresso        = 'Ultrapico\Expresso\Expresso.exe' +#        ; 'LibreOffice     = 'LibreOffice 5\program\soffice.exe' 
-        ; 'LibreOffice     = 'LibreOffice 4\program\soffice.exe' +       ; 'VirtualBox      = 'Oracle\VirtualBox\VBoxSVC.exe' 
-        ; 'VirtualBox      = 'Oracle\VirtualBox\VBoxSVC.exe'+       ; 'Tixati          = 'tixati\tixati.exe' 
 +#        ; 'VeraCrypt'        = 'VeraCrypt\VeraCrypt.exe' 
 +#        ; 'IrfanView'        = 'IrfanView\i_view32.exe'
 } }
  
 +function WebRequest ($url) {
 +    [net.httpwebrequest]$httpwebrequest = [net.webrequest]::create($url)
 +    [net.httpWebResponse]$httpwebresponse = $httpwebrequest.getResponse()
 + 
 +    if (!$httpwebresponse) {
 +        return $null
 +    }
 + 
 +    $reader = new-object IO.StreamReader($httpwebresponse.getResponseStream())
 +    $WSResponse = $reader.ReadToEnd()
 +    $reader.Close()
 + 
 +    return $WSResponse
 +}
 + 
 function WebRequest ($url) { function WebRequest ($url) {
     [net.httpwebrequest]$httpwebrequest = [net.webrequest]::create($url)     [net.httpwebrequest]$httpwebrequest = [net.webrequest]::create($url)
Line 119: Line 133:
     {     {
         $currentVersionNumber = $currentVersionNumber.Replace(' ', '')         $currentVersionNumber = $currentVersionNumber.Replace(' ', '')
 +    }
 +    if ($extraFormatting.Contains(';TrimTrailingZero;') -and $currentVersionNumber.EndsWith('0'))
 +    {
 +        $currentVersionNumber = $currentVersionNumber.Substring(0, $currentVersionNumber.Length - 1)
     }     }
     if ($extraFormatting.Contains(';TrimTrailingDotZero;') -and $currentVersionNumber.EndsWith('.0'))     if ($extraFormatting.Contains(';TrimTrailingDotZero;') -and $currentVersionNumber.EndsWith('.0'))
Line 172: Line 190:
         {         {
             CheckCurrentVersionNumber 'Anki' 'http://ankisrs.net/' `             CheckCurrentVersionNumber 'Anki' 'http://ankisrs.net/' `
-                'href="http://ankisrs\.net/download/mirror/anki-(?<versionNumber>\d+(?:\.\d+){2})\.exe"' `+                '>Download Anki for Windows Vista/7/8/10 \((?<versionNumber>\d+(?:\.\d+){2})\)<' `
                 $appsToCheck['Anki']                 $appsToCheck['Anki']
         }         }
         'ConEmu'         'ConEmu'
         {         {
-            # This regex is going to need fixing when the website isn't fucked. +            CheckCurrentVersionNumber 'ConEmu' 'http://conemu.github.io/version.ini' ` 
-            CheckCurrentVersionNumber 'ConEmu' 'http://www.fosshub.com/ConEmu.html' ` +                '\[ConEmu_Preview_2\]\s*version=(?<versionNumber>\w+)' `
-                '>ConEmu\s*Preview, Installer \(32-bit, 64-bit\).*?version(?<versionNumber>\d+)\s+\| </s' `+
                 $appsToCheck['ConEmu']                 $appsToCheck['ConEmu']
         }         }
Line 202: Line 219:
         'Notepad++'         'Notepad++'
         {         {
-            CheckCurrentVersionNumber 'Notepad++' 'http://notepad-plus-plus.org/download/' ` +            CheckCurrentVersionNumber 'Notepad++' 'http://notepad-plus-plus.org/'
-                '<title>Notepad\+\+ v(?<versionNumber>\d+(?:\.\d+){1,2}) - Current Version</title>' `+                '>Current Version:\s*(?:<\w+>\s*)*(?<versionNumber>\d+(?:\.\d+){1,3})<' `
                 $appsToCheck['Notepad++']                 $appsToCheck['Notepad++']
         }         }
Line 209: Line 226:
         {         {
             CheckCurrentVersionNumber 'Inkscape' 'http://inkscape.org/en/download/windows' `             CheckCurrentVersionNumber 'Inkscape' 'http://inkscape.org/en/download/windows' `
-                '>Latest stable version \((?<versionNumber>\d+(?:\.\d+){1,2})\)<' `+                '>Latest stable version: Inkscape ?(?<versionNumber>\d+(?:\.\d+){1,2})<' `
                 $appsToCheck['Inkscape']                 $appsToCheck['Inkscape']
         }         }
Line 223: Line 240:
                 '>latest version is (?<versionNumber>\d+(?:\.\d+){2})<' `                 '>latest version is (?<versionNumber>\d+(?:\.\d+){2})<' `
                 $appsToCheck['Stellarium']                 $appsToCheck['Stellarium']
 +        }
 +        'Gmvault'
 +        {
 +            CheckCurrentVersionNumber 'Gmvault' 'http://gmvault.org/' `
 +                'Download\s+Gmvault<small>\s*\((?<versionNumber>\d+(?:\.\d+){1,2})\s*\)\s*</small>' `
 +                $appsToCheck['Gmvault']
         }         }
    
Line 229: Line 252:
         {         {
             CheckLocalFile 'GIMP' 'http://www.gimp.org/downloads/' `             CheckLocalFile 'GIMP' 'http://www.gimp.org/downloads/' `
-                'href="http://download\.gimp\.org/pub/gimp/[^/]+/windows/gimp-(?<versionNumber>\d+(?:\.\d+){2})-setup-1\.exe\.torrent"' `+                '>The current stable release of GIMP is <(b|strong)>(?<versionNumber>\d+(?:\.\d+){2})<\/(b|strong)>' `
                 $appsToCheck['GIMP'] ''                 $appsToCheck['GIMP'] ''
         }         }
Line 253: Line 276:
         'Fiddler'         'Fiddler'
         {         {
-            CheckLocalFile 'Fiddler' 'http://www.telerik.com/download/fiddler' ` +            CheckLocalFile 'Fiddler' 'https://chocolatey.org/packages/fiddler4' ` 
-                '>Download Fiddler4</a<p class=".+?">Version <strong>(?<versionNumber>\d+(?:\.\d+){2,3}),</strong> EXE,' ` +                '<title>\s*Chocolatey\s+Gallery\s*\|\s*Fiddler\s*(?<versionNumber>\d+(?:\.\d+){2})'
-                $appsToCheck['Fiddler'] ''+                $appsToCheck['Fiddler'
 +                ';FirstThreeDigitsOnly;'
         }         }
         'Process Explorer'         'Process Explorer'
Line 267: Line 291:
             CheckLocalFile 'Process Monitor' 'http://technet.microsoft.com/en-US/sysinternals/bb896645' `             CheckLocalFile 'Process Monitor' 'http://technet.microsoft.com/en-US/sysinternals/bb896645' `
                 '<h1>Process Monitor v(?<versionNumber>\d+\.\d+)</h1>' `                 '<h1>Process Monitor v(?<versionNumber>\d+\.\d+)</h1>' `
-                $appsToCheck['Process Monitor'] ''+                $appsToCheck['Process Monitor'] ';TrimTrailingZero;'
         }         }
 #       Next time the version changes, try using this rather than the Semi-automatic check. #       Next time the version changes, try using this rather than the Semi-automatic check.
Line 286: Line 310:
         {         {
             CheckLocalFile 'FileZilla' 'http://filezilla-project.org/download.php?type=client' `             CheckLocalFile 'FileZilla' 'http://filezilla-project.org/download.php?type=client' `
-                '>The latest stable version of FileZilla Client is (?<versionNumber>\d+(?:\.\d+){3})<' `+                '>The latest stable version of FileZilla Client is (?<versionNumber>\d+(?:\.\d+){2,3})<' `
                 $appsToCheck['FileZilla'] `                 $appsToCheck['FileZilla'] `
                 ';CommaToFullStop;RemoveSpaces;TrimTrailingDotZero;'                 ';CommaToFullStop;RemoveSpaces;TrimTrailingDotZero;'
Line 326: Line 350:
         'LibreOffice'         'LibreOffice'
         {         {
-            CheckLocalFile 'LibreOffice' 'http://www.libreoffice.org/download/libreoffice-still/' `+            CheckLocalFile 'LibreOffice' 'http://www.libreoffice.org/download/libreoffice-fresh/' `
                 '>Download Version (?<versionNumber>\d+(?:\.\d+){2})<' `                 '>Download Version (?<versionNumber>\d+(?:\.\d+){2})<' `
                 $appsToCheck['LibreOffice'] `                 $appsToCheck['LibreOffice'] `
Line 334: Line 358:
         {         {
             CheckLocalFile 'VirtualBox' 'http://www.virtualbox.org/wiki/Downloads' `             CheckLocalFile 'VirtualBox' 'http://www.virtualbox.org/wiki/Downloads' `
-                '>VirtualBox (?<versionNumber>\d+(?:\.\d+){2}) for Windows hosts<' `+                '\>\s*VirtualBox\s*(?<versionNumber>\d+(?:\.\d+){1,2})\s*platform\s*packages\s*\<' `
                 $appsToCheck['VirtualBox'] `                 $appsToCheck['VirtualBox'] `
 +                ';FirstThreeDigitsOnly;'
 +        }
 +        'Tixati'
 +        {
 +            CheckLocalFile 'Tixati' 'http://www.tixati.com/download/' `
 +                '>Download Tixati v(?<versionNumber>\d+\.\d+)<' `
 +                $appsToCheck['Tixati'] ''
 +        }
 +        'VeraCrypt'
 +        {
 +            CheckLocalFile 'VeraCrypt' 'https://veracrypt.codeplex.com/wikipage?title=Downloads' `
 +                '>Latest Stable Release - (?<versionNumber>\d+\.\d+)' `
 +                $appsToCheck['VeraCrypt'] ''
 +        }
 +        'IrfanView'
 +        {
 +            CheckLocalFile 'IfranView' 'http://www.irfanview.com/checkversion.php' `
 +                'Current IrfanView version is: <b>(?<versionNumber>\d+\.\d+)' `
 +                $appsToCheck['IrfanView'] ''
 +        }
 +        'Deluge'
 +        {
 +            CheckLocalFile 'Deluge' 'http://deluge-torrent.org/' `
 +                '\>\s*(?<versionNumber>\d+(?:\.\d+)+)\s*\<' `
 +                $appsToCheck['Deluge'] `
                 ';FirstThreeDigitsOnly;'                 ';FirstThreeDigitsOnly;'
         }         }
Line 347: Line 396:
 cls cls
 foreach ($appName in $AppsToCheck.Keys) { CheckAppCurrentVersionNumber ($appName) } foreach ($appName in $AppsToCheck.Keys) { CheckAppCurrentVersionNumber ($appName) }
-#CheckAppCurrentVersionNumber 'ConEmu' +#CheckAppCurrentVersionNumber 'Fiddler'
-  +
-Write-Host "Press any key to exit." +
-$null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")+
 </code> </code>
powershell_check_for_updates.1424505364.txt.gz · Last modified: 2017/01/01 19:51 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki