Skip to content

Instantly share code, notes, and snippets.

@vincent1890
Forked from Santaro255/7zip_ext.ps1
Created May 28, 2024 18:28
Show Gist options
  • Save vincent1890/2566506863b4869bef22b6d45c40214b to your computer and use it in GitHub Desktop.
Save vincent1890/2566506863b4869bef22b6d45c40214b to your computer and use it in GitHub Desktop.
New-PSDrive -PSProvider Registry -Root HKEY_CLASSES_ROOT -Name HKCR -ErrorAction SilentlyContinue
$list=@(
'.7z',
'.zip',
'.rar',
'.001',
'.cab',
'.iso',
'.xz',
'.txz',
'.lzma',
'.tar',
'.cpio',
'.bz2',
'.bzip2',
'.tbz2',
'.tbz',
'.gz',
'.gzip',
'.tgz',
'.tpz',
'.z',
'.taz',
'.lzh',
'.lha',
'.rpm',
'.deb',
'.arj',
'.vhd',
'.wim',
'.swm',
'.fat',
'.ntfs',
'.dmg',
'.hfs',
'.xar',
'.squashfs'
)
function set_ext($item){
if (Test-Path -Path "HKCR:\$item") {New-ItemProperty -Path "HKCR:\$item" -Name "(default)" -Value "7-Zip$item" | Out-Null}
else {New-Item -Path "HKCR:\$item" | Out-Null ; New-ItemProperty -Path "HKCR:\$item" -Name "(default)" -Value "7-Zip$item" | Out-Null}
}
function assoc_ext($item){
if (Test-Path -Path "HKCR:\7-Zip$item") {}
else {New-Item -Path "HKCR:\7-Zip$item" | Out-Null
New-Item -Path "HKCR:\7-Zip$item\shell\" | Out-Null
New-Item -Path "HKCR:\7-Zip$item\shell\open" | Out-Null
New-Item -Path "HKCR:\7-Zip$item\shell\open\command" | Out-Null
if (Test-Path -Path "C:\Program Files (x86)\7-Zip") {New-ItemProperty -Path "HKCR:\7-Zip$item\shell\open\command" -Name "(default)" -Value '"C:\Program Files (x86)\7-Zip\7zFM.exe" "%1"' | Out-Null}
else {New-ItemProperty -Path "HKCR:\7-Zip$item\shell\open\command" -Name "(default)" -Value '"C:\Program Files\7-Zip\7zFM.exe" "%1"' | Out-Null}
New-Item -Path "HKCR:\7-Zip$item\DefaultIcon" | Out-Null
if (Test-Path -Path "C:\Program Files (x86)\7-Zip") {
switch ($item) {
{$item -eq ".7z"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files (x86)\7-Zip\7z.dll,0" | Out-Null}
{$item -eq ".zip"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files (x86)\7-Zip\7z.dll,1" | Out-Null}
{$item -eq ".rar"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files (x86)\7-Zip\7z.dll,3" | Out-Null}
{$item -eq ".001"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files (x86)\7-Zip\7z.dll,9" | Out-Null}
{$item -eq ".cab"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files (x86)\7-Zip\7z.dll,7" | Out-Null}
{$item -eq ".iso"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files (x86)\7-Zip\7z.dll,8" | Out-Null}
{$item -eq ".xz"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files (x86)\7-Zip\7z.dll,23" | Out-Null}
{$item -eq ".txz"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files (x86)\7-Zip\7z.dll,23" | Out-Null}
{$item -eq ".lzma"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files (x86)\7-Zip\7z.dll,16" | Out-Null}
{$item -eq ".tar"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files (x86)\7-Zip\7z.dll,13" | Out-Null}
{$item -eq ".cpio"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files (x86)\7-Zip\7z.dll,12" | Out-Null}
{$item -eq ".bz2"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files (x86)\7-Zip\7z.dll,2" | Out-Null}
{$item -eq ".bzip2"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files (x86)\7-Zip\7z.dll,2" | Out-Null}
{$item -eq ".tbz2"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files (x86)\7-Zip\7z.dll,2" | Out-Null}
{$item -eq ".tbz"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files (x86)\7-Zip\7z.dll,2" | Out-Null}
{$item -eq ".gz"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files (x86)\7-Zip\7z.dll,14" | Out-Null}
{$item -eq ".gzip"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files (x86)\7-Zip\7z.dll,14" | Out-Null}
{$item -eq ".tgz"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files (x86)\7-Zip\7z.dll,14" | Out-Null}
{$item -eq ".tpz"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files (x86)\7-Zip\7z.dll,14" | Out-Null}
{$item -eq ".z"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files (x86)\7-Zip\7z.dll,5" | Out-Null}
{$item -eq ".taz"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files (x86)\7-Zip\7z.dll,5" | Out-Null}
{$item -eq ".lzh"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files (x86)\7-Zip\7z.dll,6" | Out-Null}
{$item -eq ".lha"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files (x86)\7-Zip\7z.dll,6" | Out-Null}
{$item -eq ".rpm"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files (x86)\7-Zip\7z.dll,10" | Out-Null}
{$item -eq ".deb"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files (x86)\7-Zip\7z.dll,11" | Out-Null}
{$item -eq ".arj"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files (x86)\7-Zip\7z.dll,4" | Out-Null}
{$item -eq ".vhd"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files (x86)\7-Zip\7z.dll,20" | Out-Null}
{$item -eq ".wim"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files (x86)\7-Zip\7z.dll,15" | Out-Null}
{$item -eq ".swm"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files (x86)\7-Zip\7z.dll,15" | Out-Null}
{$item -eq ".fat"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files (x86)\7-Zip\7z.dll,21" | Out-Null}
{$item -eq ".ntfs"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files (x86)\7-Zip\7z.dll,22" | Out-Null}
{$item -eq ".dmg"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files (x86)\7-Zip\7z.dll,17" | Out-Null}
{$item -eq ".hfs"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files (x86)\7-Zip\7z.dll,18" | Out-Null}
{$item -eq ".xar"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files (x86)\7-Zip\7z.dll,19" | Out-Null}
{$item -eq ".squashfs"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files (x86)\7-Zip\7z.dll,24" | Out-Null}}}
else {
switch ($item) {
{$item -eq ".7z"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files\7-Zip\7z.dll,0" | Out-Null}
{$item -eq ".zip"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files\7-Zip\7z.dll,1" | Out-Null}
{$item -eq ".rar"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files\7-Zip\7z.dll,3" | Out-Null}
{$item -eq ".001"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files\7-Zip\7z.dll,9" | Out-Null}
{$item -eq ".cab"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files\7-Zip\7z.dll,7" | Out-Null}
{$item -eq ".iso"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files\7-Zip\7z.dll,8" | Out-Null}
{$item -eq ".xz"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files\7-Zip\7z.dll,23" | Out-Null}
{$item -eq ".txz"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files\7-Zip\7z.dll,23" | Out-Null}
{$item -eq ".lzma"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files\7-Zip\7z.dll,16" | Out-Null}
{$item -eq ".tar"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files\7-Zip\7z.dll,13" | Out-Null}
{$item -eq ".cpio"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files\7-Zip\7z.dll,12" | Out-Null}
{$item -eq ".bz2"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files\7-Zip\7z.dll,2" | Out-Null}
{$item -eq ".bzip2"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files\7-Zip\7z.dll,2" | Out-Null}
{$item -eq ".tbz2"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files\7-Zip\7z.dll,2" | Out-Null}
{$item -eq ".tbz"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files\7-Zip\7z.dll,2" | Out-Null}
{$item -eq ".gz"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files\7-Zip\7z.dll,14" | Out-Null}
{$item -eq ".gzip"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files\7-Zip\7z.dll,14" | Out-Null}
{$item -eq ".tgz"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files\7-Zip\7z.dll,14" | Out-Null}
{$item -eq ".tpz"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files\7-Zip\7z.dll,14" | Out-Null}
{$item -eq ".z"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files\7-Zip\7z.dll,5" | Out-Null}
{$item -eq ".taz"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files\7-Zip\7z.dll,5" | Out-Null}
{$item -eq ".lzh"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files\7-Zip\7z.dll,6" | Out-Null}
{$item -eq ".lha"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files\7-Zip\7z.dll,6" | Out-Null}
{$item -eq ".rpm"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files\7-Zip\7z.dll,10" | Out-Null}
{$item -eq ".deb"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files\7-Zip\7z.dll,11" | Out-Null}
{$item -eq ".arj"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files\7-Zip\7z.dll,4" | Out-Null}
{$item -eq ".vhd"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files\7-Zip\7z.dll,20" | Out-Null}
{$item -eq ".wim"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files\7-Zip\7z.dll,15" | Out-Null}
{$item -eq ".swm"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files\7-Zip\7z.dll,15" | Out-Null}
{$item -eq ".fat"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files\7-Zip\7z.dll,21" | Out-Null}
{$item -eq ".ntfs"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files\7-Zip\7z.dll,22" | Out-Null}
{$item -eq ".dmg"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files\7-Zip\7z.dll,17" | Out-Null}
{$item -eq ".hfs"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files\7-Zip\7z.dll,18" | Out-Null}
{$item -eq ".xar"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files\7-Zip\7z.dll,19" | Out-Null}
{$item -eq ".squashfs"} {New-ItemProperty -Path "HKCR:\7-Zip$item\DefaultIcon" -Name "(default)" -Value "C:\Program Files\7-Zip\7z.dll,24" | Out-Null}}}
}
}
foreach ($i in $list) {
set_ext($i)
assoc_ext($i)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment