Skip to content

about_Case-Sensitivity lacks detail in a lot of areas #12624

@surfingoldelephant

Description

@surfingoldelephant

Prerequisites

  • Existing Issue: Search the existing issues for this repository. If there is an issue that fits your needs do not file a new one. Subscribe, react, or comment on that issue instead.
  • Descriptive Title: Write the title for this issue as a short synopsis. If possible, provide context. For example, "Typo in Get-Foo cmdlet" instead of "Typo."
  • Verify Version: If there is a mismatch between documentation and the behavior on your system, ensure that the version you are using is the same as the documentation. Check this box if they match or the issue you are reporting is not version specific.

Links

https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_case-sensitivity

Summary

about_Case-Sensitivity lacks detail in a lot of areas.

The purpose of this issue is to document areas of PowerShell which are case-sensitive by default or handle case inconsistently/conditionally.

Details

Areas of PowerShell which are either case-sensitive by default or handle case inconsistently/conditionally:

Areas of PowerShell which are guaranteed to be case-insensitive on all systems:

  • Non-dictionary member-access
  • Operator names
  • Non-ExternalScript/Application command discovery
  • Parameter names
  • Variable names/Get-Variable/Variable:
  • Keywords
  • using namespace statements
  • Type literals
  • #Requires
  • Comment-based help
  • PS provider names
  • PS drive names
  • Scope modifiers

Suggested Fix

  • Be explicitly clear that on systems with a case-sensitive file system, the FileSystem and Environment PS providers are case-sensitive, except with wildcard matching/globbing.
  • Call out areas of PowerShell which are either case-sensitive by default on all systems or are inconsistent/conditional with case handling. See details above.
  • Add additional examples in which case-insensitivity is guaranteed on all systems.
  • Perhaps document exactly how case-sensitivity is handled in all of the main serialization/deserialization formats (CSV, JSON, XML, CLIXML) and potential workarounds with problematic input.

Metadata

Metadata

Assignees

Labels

area-aboutArea - About_ topicsissue-doc-bugIssue - error in documentation

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions