Set Default File Association - Please Help

This topic contains 2 replies, has 2 voices, and was last updated by Profile photo of H Man H Man 8 months, 2 weeks ago.

  • Author
    Posts
  • #36751
    Profile photo of H Man
    H Man
    Participant

    Hello

    Im stuck for some reason that I dont know this is not working any advice on how to change default file associations would be highly appreciated.

    this is what I have so far... thank you

    [string]$extension = 'txt'
    [string]$executable = "C:\Program Files (x86)\Notepad++\notepad++.exe"
    
    if (-not (Test-Path $executable))
    {
    	$errorMessage = "`'$executable`' does not exist, not able to create association"
    
    	throw $errorMessage
    }
    $extension = $extension.trim()
    if (-not ($extension.StartsWith(".")))
    {
    	$extension = ".$extension"
    }
    $fileType = Split-Path $executable -leaf
    $fileType = $fileType.Replace(" ", "_")
    $elevated = @"
        cmd /c "assoc $extension=$fileType"
        cmd /c 'ftype $fileType="$executable" "%1" "%*"'
        New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT
        Set-ItemProperty -Path "HKCR:\$fileType" -Name "(Default)" -Value "$fileType file" 
    -ErrorAction Stop
    "@
    iex $elevated
    
    
  • #37005
    Profile photo of Don Jones
    Don Jones
    Keymaster

    In your second Cmd, the string is delimited with single quotes, so won't do variable replacement. Only the outermost quotes count for this – the fact that you've used double quotes inside doesn't matter.

  • #37019
    Profile photo of H Man
    H Man
    Participant

    Thx Don!

You must be logged in to reply to this topic.