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 [2014/09/13 00:14] 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.13 +#### Version 1.36 
-#### Last updated 2014-09-13+#### 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.12+        ; 'ThisScript'       = '1.31
-        ; 'Anki'             = '2.0.28+        ; 'Anki'             = '2.0.36
-        ; 'ConEmu'           = '140814+        ; 'ConEmu'           = '160619
-        ; 'Paint.NET'        = '4.0.3+        ; 'Paint.NET'        = '4.0.9
-        ; 'Rockbox'          = '3.13' +#       ; 'Rockbox'          = '3.13' 
-        ; 'DokuWiki'         = '2014-05-05+#       ; 'DokuWiki'         = '2013-05-10
-        ; 'Notepad++'        = '6.6.9'         # 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'            = '2013.0.0'+
         ; '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 61: Line 76:
         return         return
     }     }
 + 
     Out-File -filepath (Join-path $env:temp "$appName.html") -inputobject $response     Out-File -filepath (Join-path $env:temp "$appName.html") -inputobject $response
    
Line 94: Line 109:
     return $latestVersionNumber     return $latestVersionNumber
 } }
-  
    
 function CheckLocalFile ($appName, $url, $regexPattern, $localFilename, $extraFormatting) function CheckLocalFile ($appName, $url, $regexPattern, $localFilename, $extraFormatting)
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'
         {         {
-            CheckCurrentVersionNumber 'ConEmu' 'http://www.fosshub.com/ConEmu.html' ` +            CheckCurrentVersionNumber 'ConEmu' 'http://conemu.github.io/version.ini' ` 
-                '>\s*Preview, Installer \(32-bit, 64-bit\).*?version(?<versionNumber>\d+)\s+\| </s' `+                '\[ConEmu_Preview_2\]\s*version=(?<versionNumber>\w+)' `
                 $appsToCheck['ConEmu']                 $appsToCheck['ConEmu']
         }         }
Line 201: 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++']
         }         }
         'Inkscape'         'Inkscape'
         {         {
-            CheckCurrentVersionNumber 'Inkscape' 'http://www.inkscape.org/en/download/windows'+            CheckCurrentVersionNumber 'Inkscape' 'http://inkscape.org/en/download/windows'
-                '>Latest stable version \((?<versionNumber>\d+(?:\.\d+){2})\)<' `+                '>Latest stable version: Inkscape ?(?<versionNumber>\d+(?:\.\d+){1,2})<' `
                 $appsToCheck['Inkscape']                 $appsToCheck['Inkscape']
         }         }
Line 216: Line 234:
                 '>hugin-(?<versionNumber>\d+(?:\.\d+){2})\.tar\.bz2<' `                 '>hugin-(?<versionNumber>\d+(?:\.\d+){2})\.tar\.bz2<' `
                 $appsToCheck['Hugin']                 $appsToCheck['Hugin']
 +        }
 +        'Stellarium'
 +        {
 +            CheckCurrentVersionNumber 'Stellarium' 'http://stellarium.org/' `
 +                '>latest version is (?<versionNumber>\d+(?:\.\d+){2})<' `
 +                $appsToCheck['Stellarium']
 +        }
 +        'Gmvault'
 +        {
 +            CheckCurrentVersionNumber 'Gmvault' 'http://gmvault.org/' `
 +                'Download\s+Gmvault<small>\s*\((?<versionNumber>\d+(?:\.\d+){1,2})\s*\)\s*</small>' `
 +                $appsToCheck['Gmvault']
         }         }
    
Line 222: 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 241: Line 271:
             CheckLocalFile 'Foobar2000' 'http://www.foobar2000.org/download' `             CheckLocalFile 'Foobar2000' 'http://www.foobar2000.org/download' `
                 'href="/getfile/[^/]+/foobar2000_v(?<versionNumber>\d+(?:\.\d+){1,2}).exe">foobar2000 v\d+(?:\.\d+){1,2}' `                 'href="/getfile/[^/]+/foobar2000_v(?<versionNumber>\d+(?:\.\d+){1,2}).exe">foobar2000 v\d+(?:\.\d+){1,2}' `
-                $appsToCheck['Foobar2000'] ''+                $appsToCheck['Foobar2000'
 +                ';TrimTrailingDotZero;'
         }         }
         '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 259: 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 278: 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 318: Line 350:
         'LibreOffice'         'LibreOffice'
         {         {
-            CheckLocalFile 'LibreOffice' 'http://www.libreoffice.org/download'+            CheckLocalFile 'LibreOffice' 'http://www.libreoffice.org/download/libreoffice-fresh/' ` 
-                'Download LibreOffice (?<versionNumber>\d+(?:\.\d+){2}) for Windows' `+                '>Download Version (?<versionNumber>\d+(?:\.\d+){2})<' `
                 $appsToCheck['LibreOffice'] `                 $appsToCheck['LibreOffice'] `
                 ';FirstThreeDigitsOnly;'                 ';FirstThreeDigitsOnly;'
Line 326: 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 339: Line 396:
 cls cls
 foreach ($appName in $AppsToCheck.Keys) { CheckAppCurrentVersionNumber ($appName) } foreach ($appName in $AppsToCheck.Keys) { CheckAppCurrentVersionNumber ($appName) }
-#CheckAppCurrentVersionNumber 'VirtualBox' +#CheckAppCurrentVersionNumber 'Fiddler'
-  +
-Write-Host "Press any key to exit." +
-$null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")+
 </code> </code>
powershell_check_for_updates.1410567253.txt.gz · Last modified: 2017/01/01 19:51 (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki