-
Notifications
You must be signed in to change notification settings - Fork 8.2k
Closed
Closed
Copy link
Description
Prerequisites
- Write a descriptive title.
- Make sure you are able to repro it on the latest released version
- Search the existing issues.
- Refer to the FAQ.
- Refer to Differences between Windows PowerShell 5.1 and PowerShell.
Steps to reproduce
This is a sub-issue of #25242.
The cmdlet Split-Path does not respect explicit $false values for the -Qualifier, -NoQualifier, -Leaf, and -IsAbsolute switch parameters.
PS> Split-Path -Path 'C:\Windows\System32\notepad.exe' -Qualifier:$false
PS> Split-Path -Path 'C:\Windows\System32\notepad.exe' -NoQualifier:$false
PS> Split-Path -Path 'C:\Windows\System32\notepad.exe' -Leaf:$false
PS> Split-Path -Path 'C:\Windows\System32\notepad.exe' -IsAbsolute:$falseExpected behavior
PS> Split-Path -Path 'C:\Windows\System32\notepad.exe' -Qualifier:$false
C:\Windows\System32
PS> Split-Path -Path 'C:\Windows\System32\notepad.exe' -NoQualifier:$false
C:\Windows\System32
PS> Split-Path -Path 'C:\Windows\System32\notepad.exe' -Leaf:$false
C:\Windows\System32
PS> Split-Path -Path 'C:\Windows\System32\notepad.exe' -IsAbsolute:$false
C:\Windows\System32Each parameter with :$false should behave the same as omitting the switch, returning the parent directory path.
Actual behavior
PS> Split-Path -Path 'C:\Windows\System32\notepad.exe' -Qualifier:$false
C:
PS> Split-Path -Path 'C:\Windows\System32\notepad.exe' -NoQualifier:$false
\Windows\System32\notepad.exe
PS> Split-Path -Path 'C:\Windows\System32\notepad.exe' -Leaf:$false
notepad.exe
PS> Split-Path -Path 'C:\Windows\System32\notepad.exe' -IsAbsolute:$false
TrueEach parameter with :$false behaves the same as specifying the switch with :$true, incorrectly applying the switch's behavior instead of ignoring it.
Error details
No error is thrown. The cmdlet executes but ignores the explicit $false values.
Environment data
PS> $PSVersionTable
Name Value
---- -----
PSVersion 7.5.4
PSEdition Core
GitCommitId 7.5.4
OS Microsoft Windows 10.0.26100
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0Visuals
No response
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels