Notices: This section not yet converted to new layout. Download stats are rolling back out.

This is not the latest version of Chocolatey Shortcuts (unofficial) available.

Chocolatey Shortcuts (unofficial)

0.1

Package test results are passing.

This package was approved by moderator digitaldrummerj on 7/1/2016.

Launch into various package management tasks via file shortcuts and command line menus.

Keep shortcuts for all your packages handy in a (portable) directory of your choice.

Think of it as a GUI of sorts, made of Windows shortcuts and PowerShell menus.

Screenshot

Upon installation, you'll find a "Chocolatey Shortcuts" folder on your desktop. You can rename or move the folder wherever you like, or keep it synced between computers in your Dropbox, OneDrive, etc.

To create shortcuts for packages, use "+Add Package Shortcuts". You'll find options to generate shortcuts individually, in bulk, or for all currently installed packages. You can use the search function to find package IDs.

Upon launching package shortcuts, you'll have options to install (if not installed), update (if available), or uninstall the package.

Check all installed packages for updates using "+Check for Package Updates". There, you can update multiple packages at once.

To install Chocolatey Shortcuts (unofficial), run the following command from the command line or from PowerShell:

C:\> choco install chocoshortcuts --version 0.1

To upgrade Chocolatey Shortcuts (unofficial), run the following command from the command line or from PowerShell:

C:\> choco upgrade chocoshortcuts --version 0.1

Files

Hide
  • Tools\ChocolateyInstall.ps1 Show
    $InstallDir = [Environment]::GetFolderPath('Desktop')+'\Chocolatey Shortcuts'
    
    Install-ChocolateyShortcut `
      -ShortcutFilePath "$InstallDir\+Add Package Shortcuts.lnk" `
      -TargetPath 'powershell.exe' `
      -Arguments "-Command `"`$WDir = Get-Location | Select-Object -ExpandProperty Path; Start-Process powershell.exe -Verb RunAs -ArgumentList \`"-NoProfile -ExecutionPolicy Unrestricted -Command `"```$App = `'1`'; Set-Location `'`"`$WDir`"`'; `& `'`"%ChocolateyInstall%\lib\ChocoShortcuts\Tools\ChocoShortcuts.ps1`"`'`"\`"`"" `
      -IconLocation '%ProgramData%\chocolatey\choco.exe' `
    
    Install-ChocolateyShortcut `
      -ShortcutFilePath "$InstallDir\+Check for Package Updates.lnk" `
      -TargetPath 'powershell.exe' `
      -Arguments "-Command `"`$WDir = Get-Location | Select-Object -ExpandProperty Path; Start-Process powershell.exe -Verb RunAs -ArgumentList \`"-NoProfile -ExecutionPolicy Unrestricted -Command `"```$App = `'2`'; Set-Location `'`"`$WDir`"`'; `& `'`"%ChocolateyInstall%\lib\ChocoShortcuts\Tools\ChocoShortcuts.ps1`"`'`"\`"`"" `
      -IconLocation '%ProgramData%\chocolatey\choco.exe' `
    
    Invoke-Item $InstallDir
  • Tools\ChocoShortcuts.ps1 Show
    # Chocolatey Shortcuts v0.1
    # https://github.com/mica/ChocoShortcuts/
    
    function Check {
        if ($App -eq $null) {
            $Header
            'Launch this script via shortcuts to manage Chocolatey packages'
            ''
            'Enter [1] to generate the initial "Add" and "Check" shortcuts'
            'Or press [Enter] to exit'
            $Entry = Read-Host
            if ($Entry -eq '1') {
                Add-Type -AssemblyName System.Windows.Forms
                $FolderBrowser = New-Object System.Windows.Forms.FolderBrowserDialog -Property @{
                    Description = "Choose a folder for your Chocolatey shortcuts`r`nMove or rename it anytime "+[char]0x2013+" it's portable!"
                }
                [void]$FolderBrowser.ShowDialog()
                $InstallDir = $FolderBrowser.SelectedPath
                if ($InstallDir -eq '') {
                    Clear-Host
                    Check
                }
                else {
                    $WScriptShell = New-Object -ComObject WScript.Shell
                    $Shortcut = $WScriptShell.CreateShortcut("$InstallDir\+Add Package Shortcuts.lnk")
                    $Shortcut.TargetPath = 'powershell.exe'
                    $Shortcut.Arguments = "-Command `"`$WDir = Get-Location | Select-Object -ExpandProperty Path; Start-Process powershell.exe -Verb RunAs -ArgumentList \`"-NoProfile -ExecutionPolicy Unrestricted -Command `"```$App = `'1`'; Set-Location `'`"`$WDir`"`'; `& `'`"%ChocolateyInstall%\lib\ChocoShortcuts\Tools\ChocoShortcuts.ps1`"`'`"\`"`""
                    $Shortcut.IconLocation = '%ProgramData%\chocolatey\choco.exe'
                    $Shortcut.Save()
                    $Shortcut = $WScriptShell.CreateShortcut("$InstallDir\+Check for Package Updates.lnk")
                    $Shortcut.TargetPath = 'powershell.exe'
                    $Shortcut.Arguments = "-Command `"`$WDir = Get-Location | Select-Object -ExpandProperty Path; Start-Process powershell.exe -Verb RunAs -ArgumentList \`"-NoProfile -ExecutionPolicy Unrestricted -Command `"```$App = `'2`'; Set-Location `'`"`$WDir`"`'; `& `'`"%ChocolateyInstall%\lib\ChocoShortcuts\Tools\ChocoShortcuts.ps1`"`'`"\`"`""
                    $Shortcut.IconLocation = '%ProgramData%\chocolatey\choco.exe'
                    $Shortcut.Save()
                    Clear-Host
                    $Header
                    "Shortcuts have been created in $InstallDir"
                    ''
                    'Enter [1] to open the folder'
                    'Or press [Enter] to exit'
                    $Entry = Read-Host
                    if ($Entry -eq '1') {
                        Invoke-Item $InstallDir
                        Exit
                    }
                    else {
                        Exit
                    }
                }
            }
            elseif ($Entry -eq '') {
                Exit
            }
            else {
                Clear-Host
                Check
            }
        }
        elseif ($App -eq '1') {
            $Header
            AddNew
        }
        elseif ($App -eq '2') {
            UpdateCheck
        }
        $Header
        "Checking Chocolatey.org for $App..."
        $Check = (choco upgrade $App -noop -r) -split '\|'
        if ($Check -join '' -match 'not found with') {
            Clear-Host
            $Header
            "$App was not found on Chocolatey.org"
            'Either the repository was inaccessible' 
            'Or your shortcut has an incorrect package ID'
            ''
            'Enter [1] to try again'
            "Enter [2] to delete the $App shortcut and create a new one"
            'Or press [Enter] to exit'
            $Entry = Read-Host
            if ($Entry -eq '1') {
                Clear-Host
                Check
            }
            elseif ($Entry -eq '2') {
                Remove-Item ".\$App.lnk"
                Clear-Host
                $Header
                AddNew
            }
        }
        elseif ($Check -join '' -match 'would have'){
            $Avail = (choco list $App -e -r) -replace '^.*\|','v'
            Install
        }
        elseif ($Check[1] -eq $Check[2]) {
            $Curr = 'v' + $Check[1]
            UpToDate
        }
        elseif ($Check[1] -ne $Check[2]) {
            $Curr = 'v' + $Check[1]
            $Avail = 'v' + $Check[2]
            Update
        }
    }
    
    function Install {
        Clear-Host
        $Header
        "$App is not installed"
        ''
        "Enter [1] to install $Avail" 
        'Or press [Enter] to exit'
        $Entry = Read-Host
        if ($Entry -eq '1') {
            Clear-Host
            $Header
            choco install $App -y
            Read-Host "`r`nPress [Enter] to exit"
            Exit
        }
        elseif ($Entry -eq '') {
            Exit
        }
        else {
            Install
        }
    }
    
    function UpToDate {
        Clear-Host
        $Header
        "$App $Curr is installed"
        'No updates are available'
        ''
        "Enter [2] to uninstall $App"
        'Or press [Enter] to exit'
        $Entry = Read-Host
        if ($Entry -eq '2') {
            Clear-Host
            $Header
            choco uninstall $App -y -x -a
            Read-Host "`r`nPress [Enter] to exit"
            Exit
        }
        elseif ($Entry -eq '') {
            Exit
        }
        else {
            UpToDate
        }
    }
    
    function Update {
        Clear-Host
        $Header
        "$App $Curr is installed"
        "The $Avail update is available"
        ''
        "Enter [1] to update $App"
        "Enter [2] to uninstall $App"
        'Or press [Enter] to exit'
        $Entry = Read-Host
        if ($Entry -eq '1') {
            Clear-Host
            $Header
            choco upgrade $App -y
            Read-Host "`r`nPress [Enter] to exit"
            Exit
        }
        elseif ($Entry -eq '2') {
            Clear-Host
            $Header
            choco uninstall $App -y -x -a
            Read-Host "`r`nPress [Enter] to exit"
            Exit
        }
        elseif ($Entry -eq '') {
            Exit
        }
        else {
            Update
        }
    }
    
    function AddNew {
        'Create new shortcuts for installing/updating/uninstalling packages:'
        ''
        'Enter the [ID] of one or more (comma separated) packages'
        'Enter [1] to search Chocolatey.org for package IDs'
        'Enter [2] to make shortcuts for all currently installed packages'
        'Or press [Enter] to exit'
        $Entry = Read-Host
        if ($Entry -eq '1') {
            Search
        }
        elseif ($Entry -eq '2') {
            $Entry = (choco list -l -r | Where-Object {$_ -notmatch '.install'}) -replace '\|.*$' -join ','
            Generate
        }
        elseif ($Entry -eq '') {
            Exit
        }
        else {
            Generate
        }
    
    }
    
    function Generate {
        Clear-Host
        $Header
        ForEach ($Package in $Entry -split ',' -replace '\s') {
            $WScriptShell = New-Object -ComObject WScript.Shell
            $Shortcut = $WScriptShell.CreateShortcut("$WDir\$Package.lnk")
            $Shortcut.TargetPath = 'powershell.exe'
            $Shortcut.Arguments = "-Command `"`$WDir = Get-Location | Select-Object -ExpandProperty Path; Start-Process powershell.exe -Verb RunAs -ArgumentList \`"-NoProfile -ExecutionPolicy Unrestricted -Command `"```$App = `'$Package`'; Set-Location `'`"`$WDir`"`'; `& `'`"%ChocolateyInstall%\lib\ChocoShortcuts\Tools\ChocoShortcuts.ps1`"`'`"\`"`""
            $Shortcut.IconLocation = '%ProgramData%\chocolatey\choco.exe'
            $Shortcut.Save()
        }
        "Shortcuts have been created in $WDir"
        ''
        'Enter [1] to open the folder'
        'Enter [2] to create more shortcuts'
        'Or press [Enter] to exit'
        $Entry = Read-Host
        if ($Entry -eq '1') {
            Invoke-Item $WDir
            Clear-Host
            $Header
            AddNew
        }
        elseif ($Entry -eq '2') {
            Clear-Host
            $Header
            AddNew
        }
        elseif ($Entry -eq '') {
            Exit
        }
        else {
            Clear-Host
            $Header
            AddNew
        }
    }
    
    function Search {
        Clear-Host
        $Header
        $Search = Read-Host 'Search for packages'
        if ($Search -eq '') {
            Clear-Host
            $Header
            AddNew
        }
        else {
            (choco list $Search -r) -replace '\|',' (v' -replace '$',')'
            AddNew
        }
    }
    
    function UpdateCheck {
        Clear-Host
        $Header
        'Checking Chocolatey.org for updates...'
        $Outdated = choco outdated -r | Where-Object {$_ -notmatch '.install'}
        if ($Outdated[3] -eq $null) {
            Clear-Host
            $Header
            'No updates are available'
            Read-Host "`r`nPress [Enter] to exit"
            Exit
        }
        else {
            $Updates = ForEach ($Package in $Outdated[3..($Outdated.Length)]) {
                $Package -replace '\|(\d*\.)*\d*\|',' v' -replace '\|\D*$'
            }
            if ($Updates -isnot [system.array]) {
                Clear-Host
                $Header
                'An update is available:'
                $Updates
                ''
                'Enter [1] to update'
                'Or press [Enter] to exit'
                $Entry = Read-Host
                if ($Entry -eq '1') {
                    Clear-Host
                    $Header                
                    choco upgrade -y ($Updates -replace ' v.*$')
                    Read-Host "`r`nPress [Enter] to exit"
                    Exit
                }
                else {
                    Exit
                } 
            }
            else {
                UpdateAll
            }
        }
    }
    
    function UpdateAll {
        Clear-Host
        $Header
        'The following updates are available:'
        $Updates
        ''
        'Enter [1] to update all packages'
        'Enter [2] to select packages to update'
        'Or press [Enter] to exit'
        $Entry = Read-Host
        if ($Entry -eq '1') {
            Clear-Host
            $Header
            'Installing the following updates:'
            $Updates
            ''
            ForEach ($Package in $Updates) {
                choco upgrade -y ($Package -replace ' v.*$')
            }
            ''
            'Updates are complete'
            Read-Host "`r`nPress [Enter] to exit"
            Exit
        }
        elseif ($Entry -eq '2') {
            UpdateSelect
        }
        elseif ($Entry -eq '') {
            Exit
        }
        else {
            UpdateAll
        }
    }
    
    function UpdateSelect {
        Clear-Host
        $Header
        'Enter the (comma separated) numbers of one or more packages'
        ''
        ForEach ($Package in $Updates) {
            $Selector++
            "[$Selector] $Package"
        }
        ''
        'Or press [Enter] to go back'
        $Entry = Read-Host
        if ($Entry -eq '') {
            $Selector = 0
            UpdateAll
        }
        elseif ($Entry -notmatch '[^\d\s,]') {
            $Number = ForEach ($Selector in ($Entry -split ',' -replace '\s')) {
                $Selector - 1 -as [int]
            }
            Clear-Host
            $Header
            'Installing the following updates:'
            $Updates[$Number]
            ''
            ForEach ($Package in ($Updates[$Number] -replace ' v\d.*$')) {
                choco upgrade -y $Package
            }
            ''
            'Updates are complete'
            Read-Host "`r`nPress [Enter] to exit"
            Exit
        }
        else {
            $Selector = 0
            UpdateSelect
        }
    }
    $WDir = Get-Location | Select-Object -ExpandProperty Path
    $Header = @'
     Chocolatey Shortcuts
    ~~~~~~~~~~~~~~~~~~~~~~~
    '@
    Check

Virus Scan Results

In cases where actual malware is found, the packages are subject to removal. Software sometimes has false positives. Moderators do not necessarily validate the safety of the underlying software, only that a package retrieves software from the official distribution point and/or validate embedded software against official distribution point (where distribution rights allow redistribution).

Chocolatey Pro provides runtime protection from possible malware.

Dependencies

This package has no dependencies.

Package Maintainer(s)

Software Author(s)

  • mica

Tags

Release Notes

Initial realease

Version History

Version Downloads Last updated Status
Chocolatey Shortcuts (unofficial) 0.4 432 Wednesday, March 7, 2018 approved
Chocolatey Shortcuts (unofficial) 0.3 232 Sunday, February 18, 2018 approved
Chocolatey Shortcuts (unofficial) 0.2 973 Tuesday, February 14, 2017 approved
Chocolatey Shortcuts (unofficial) 0.1 351 Thursday, June 30, 2016 approved

Discussion for the Chocolatey Shortcuts (unofficial) Package

Ground rules:

  • This discussion is only about Chocolatey Shortcuts (unofficial) and the Chocolatey Shortcuts (unofficial) package. If you have feedback for Chocolatey, please contact the google group.
  • This discussion will carry over multiple versions. If you have a comment about a particular version, please note that in your comments.
  • The maintainers of this Chocolatey Package will be notified about new comments that are posted to this Disqus thread, however, it is NOT a guarantee that you will get a response. If you do not hear back from the maintainers after posting a message below, please follow up by using the link on the left side of this page or follow this link to contact maintainers. If you still hear nothing back, please follow the package triage process.
  • Tell us what you love about the package or Chocolatey Shortcuts (unofficial), or tell us what needs improvement.
  • Share your experiences with the package, or extra configuration or gotchas that you've found.
  • If you use a url, the comment will be flagged for moderation until you've been whitelisted. Disqus moderated comments are approved on a weekly schedule if not sooner. It could take between 1-5 days for your comment to show up.

comments powered by Disqus
Chocolatey.org uses cookies to enhance the user experience of the site.
Ok