Skip to content

Respect explicit false for CSV UseCulture - #27514

Open
Kirtikumar Anandrao Ramchandani (KirtiRamchandani) wants to merge 1 commit into
PowerShell:masterfrom
KirtiRamchandani:fix/csv-useculture-false
Open

Kirtikumar Anandrao Ramchandani (KirtiRamchandani) wants to merge 1 commit into
PowerShell:masterfrom
KirtiRamchandani:fix/csv-useculture-false

Conversation

@KirtiRamchandani

@KirtiRamchandani Kirtikumar Anandrao Ramchandani (KirtiRamchandani) commented May 24, 2026 •

Copy link
Copy Markdown
Contributor

PR Summary

Makes CSV commands treat -UseCulture:$false the same as omitting -UseCulture, so the default comma delimiter is used.

PR Context

Fix #26513.

ImportExportCSVHelper.SetDelimiter() previously left the delimiter as the default char value when the active parameter set was a culture parameter set but the UseCulture switch value was explicitly false. This affected multiple CSV commands that share the helper. The helper now falls back to the default CSV delimiter when UseCulture is false, while preserving the culture-specific delimiter when it is true.

Regression tests cover:

  • ConvertTo-Csv -UseCulture:$false
  • Export-Csv -UseCulture:$false
  • Import-Csv -UseCulture:$false
  • ConvertFrom-Csv -UseCulture:$false

PR Checklist

  • PR has a meaningful title
  • Summarized changes
  • This PR is focused on one issue
  • Make sure all .h, .cpp, .cs, .ps1 and .psm1 files have the correct copyright header
  • This PR is ready to merge and is not work-in-progress
  • Breaking change: No
  • User-facing change: Not required
  • Tests added/updated

Validation

  • Start-PSBuild -PSModuleRestore -UseNuGetOrg
  • Start-PSPester -Path test/powershell/Modules/Microsoft.PowerShell.Utility/ConvertTo-Csv.Tests.ps1,test/powershell/Modules/Microsoft.PowerShell.Utility/Export-Csv.Tests.ps1,test/powershell/Modules/Microsoft.PowerShell.Utility/Import-Csv.Tests.ps1,test/powershell/Modules/Microsoft.PowerShell.Utility/ConvertFrom-Csv.Tests.ps1 -UseNuGetOrg -ThrowOnFailure -Terse -SkipTestToolBuild

Result: CSV command tests passed: 92 passed, 0 failed.

Copilot AI review requested due to automatic review settings May 24, 2026 13:49

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Adds coverage and fixes delimiter selection so that specifying -UseCulture:$false behaves the same as omitting -UseCulture (i.e., uses the default CSV delimiter rather than the culture list separator).

Changes:

  • Add Pester tests validating default delimiter behavior when -UseCulture is explicitly set to $false across Import-Csv, Export-Csv, ConvertTo-Csv, and ConvertFrom-Csv
  • Update SetDelimiter to explicitly pick either the culture list separator (when useCulture is true) or the default CSV delimiter (when false)

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
test/powershell/Modules/Microsoft.PowerShell.Utility/Import-Csv.Tests.ps1 Adds test for Import-Csv -UseCulture:$false
test/powershell/Modules/Microsoft.PowerShell.Utility/Export-Csv.Tests.ps1 Adds test asserting comma delimiter when -UseCulture:$false
test/powershell/Modules/Microsoft.PowerShell.Utility/ConvertTo-Csv.Tests.ps1 Adds test asserting comma delimiter output when -UseCulture:$false
test/powershell/Modules/Microsoft.PowerShell.Utility/ConvertFrom-Csv.Tests.ps1 Adds test asserting comma delimiter parsing when -UseCulture:$false
src/Microsoft.PowerShell.Commands.Utility/commands/utility/CsvCommands.cs Fixes delimiter selection logic for -UseCulture:$false in UseCulture-related parameter sets

Fix ConvertTo-Csv/Export-Csv/Import-Csv/ConvertFrom-Csv delimiter selection
when -UseCulture:$false is passed explicitly. Treat explicit false the same
as omitting the switch and use the default comma delimiter.

Fixes PowerShell#26513
@microsoft-github-policy-service

Copy link
Copy Markdown
Contributor

This pull request has been automatically marked as Review Needed because it has been there has not been any activity for 7 days.
Maintainer, please provide feedback and/or mark it as Waiting on Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Review - Needed The PR is being reviewed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ConvertTo-Csv/Export-Csv -UseCulture:$false uses the wrong delimiter in ouput

2 participants