Quote bare quote file paths if the path includes a double quote character by MartinGC94 · Pull Request #25631 · PowerShell/PowerShell

@MartinGC94

PR Summary

Fixes the logic for the file path completion so paths with double quote characters get single quotes added just like we do for other problematic characters in bare quote strings.

PR Context

Fixes #25629

PR Checklist

@MartinGC94

@iSazonov iSazonov added the CL-General

Indicates that a PR should be marked as a general cmdlet change in the Change Log

label

Jun 4, 2025

iSazonov

@MartinGC94

@MartinGC94

iSazonov

_ = sb.Append('\'');
quotesAreNeeded = true;
// Bareword or singlequoted input string.
if (path[index].IsSingleQuote())

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems the method would be more readable if we ridded of useSingleQuoteEscapeRules and replace it with stringType is StringConstantType.SingleQuoted or StringConstantType.BareWord.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That check will change when my PR to keep variables when tab completing paths is merged. If someone is tab completing a bareword string with a variable it needs to use double quote rules.

iSazonov

$null = New-Item -Path $TestFile1 -Force
$Expected = "'$($TestFile1.Insert($TestFile1.LastIndexOf($BadQuote), "'"))'"

$res = TabExpansion2 -inputScript "Get-ChildItem -Path '$TestDrive\"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If it is intentional to have single quote it is not obvious so please add a comment.

@MartinGC94

@MartinGC94

@iSazonov

/azp run PowerShell-Windows-Packaging-CI,PowerShell-CI-linux-packaging

@azure-pipelines

Azure Pipelines could not run because the pipeline triggers exclude this branch/path.

iSazonov

@microsoft-github-policy-service

SIRMARGIN pushed a commit to SIRMARGIN/PowerShell that referenced this pull request

Dec 12, 2025

@MartinGC94 @SIRMARGIN