The command line parsing may erroneously parse the parameters of the subcommand #9429

Closed
opened 2026-01-31 01:54:18 +00:00 by claunia · 5 comments
Owner

Originally created by @fcharlie on GitHub (Jul 4, 2020).

Environment

Windows build number: [run `[Environment]::OSVersion` for powershell, or `ver` for cmd]
Windows Terminal version (if applicable):

Microsoft Windows [版本 10.0.19041.329]

image

Steps to reproduce

Create a helloworld.ps1 file:

# helloworld
Write-Host "Hello world"

Run the following command in CMD:

wt pwsh  -NoExit -File %CD%/helloworld.ps1

Expected behavior

Start Windows Terminal correctly.

Actual behavior

Windows Terminal abnormal full screen

image
image2

image

Looking at the use of Windows Terminal, I speculate that this problem is caused by an error in parsing the command line.

If you start wt as follows, you can run it correctly:

wt -- pwsh  -NoExit -File %CD%/helloworld.ps1
Originally created by @fcharlie on GitHub (Jul 4, 2020). <!-- 🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨 I ACKNOWLEDGE THE FOLLOWING BEFORE PROCEEDING: 1. If I delete this entire template and go my own path, the core team may close my issue without further explanation or engagement. 2. If I list multiple bugs/concerns in this one issue, the core team may close my issue without further explanation or engagement. 3. If I write an issue that has many duplicates, the core team may close my issue without further explanation or engagement (and without necessarily spending time to find the exact duplicate ID number). 4. If I leave the title incomplete when filing the issue, the core team may close my issue without further explanation or engagement. 5. If I file something completely blank in the body, the core team may close my issue without further explanation or engagement. All good? Then proceed! --> <!-- This bug tracker is monitored by Windows Terminal development team and other technical folks. **Important: When reporting BSODs or security issues, DO NOT attach memory dumps, logs, or traces to Github issues**. Instead, send dumps/traces to secure@microsoft.com, referencing this GitHub issue. If this is an application crash, please also provide a Feedback Hub submission link so we can find your diagnostic data on the backend. Use the category "Apps > Windows Terminal (Preview)" and choose "Share My Feedback" after submission to get the link. Please use this form and describe your issue, concisely but precisely, with as much detail as possible. --> # Environment ```none Windows build number: [run `[Environment]::OSVersion` for powershell, or `ver` for cmd] Windows Terminal version (if applicable): Microsoft Windows [版本 10.0.19041.329] ``` ![image](https://user-images.githubusercontent.com/6904176/86505120-a1f34a00-bdf3-11ea-8f97-f853e19b3c57.png) # Steps to reproduce <!-- A description of how to trigger this bug. --> Create a helloworld.ps1 file: ```powershell # helloworld Write-Host "Hello world" ``` Run the following command in CMD: ```cmd wt pwsh -NoExit -File %CD%/helloworld.ps1 ``` # Expected behavior <!-- A description of what you're expecting, possibly containing screenshots or reference material. --> Start Windows Terminal correctly. # Actual behavior <!-- What's actually happening? --> Windows Terminal abnormal full screen ![image](https://user-images.githubusercontent.com/6904176/86505085-2f826a00-bdf3-11ea-95a4-180508688141.png) ![image2](https://user-images.githubusercontent.com/6904176/86505087-36a97800-bdf3-11ea-94cf-c55a32a606de.png) ![image](https://user-images.githubusercontent.com/6904176/86505119-9142d400-bdf3-11ea-9c65-99302c61f0de.png) Looking at the use of Windows Terminal, I speculate that this problem is caused by an error in parsing the command line. If you start wt as follows, you can run it correctly: ```cmd wt -- pwsh -NoExit -File %CD%/helloworld.ps1 ```
Author
Owner

@DHowett commented on GitHub (Jul 10, 2020):

I'm wondering if we're holding CLI11 wrong, or if it's a bug on their side. -- is the canonical way to get around this, but like... it shouldn't match -File just because -F is a substring of it. I don't love that.

@DHowett commented on GitHub (Jul 10, 2020): I'm wondering if we're holding CLI11 wrong, or if it's a bug on their side. `--` is the canonical way to get around this, but like... it shouldn't match `-File` just because `-F` is a substring of it. I don't love that.
Author
Owner

@fcharlie commented on GitHub (Jul 10, 2020):

I'm wondering if we're holding CLI11 wrong, or if it's a bug on their side. is the canonical way to get around this, but like... it shouldn't match just because is a substring of it. I don't love that.--``-File``-F

I think CLI11 does not correctly handle the boundaries of the command line, that is, when we parse the subcommand, we should stop parsing.

@fcharlie commented on GitHub (Jul 10, 2020): > I'm wondering if we're holding CLI11 wrong, or if it's a bug on their side. is the canonical way to get around this, but like... it shouldn't match just because is a substring of it. I don't love that.`--``-File``-F` I think CLI11 does not correctly handle the boundaries of the command line, that is, when we parse the subcommand, we should stop parsing.
Author
Owner

@stax76 commented on GitHub (Jul 25, 2020):

-- is the canonical way to get around this

Is this documented somewhere?

I couldn't find it in the docs of Windows Terminal and PowerShell.

https://docs.microsoft.com/en-us/windows/terminal

https://docs.microsoft.com/en-us/powershell

@stax76 commented on GitHub (Jul 25, 2020): > -- is the canonical way to get around this Is this documented somewhere? I couldn't find it in the docs of Windows Terminal and PowerShell. https://docs.microsoft.com/en-us/windows/terminal https://docs.microsoft.com/en-us/powershell
Author
Owner

@Don-Vito commented on GitHub (Dec 10, 2020):

@zadjii-msft, @DHowett - I think that https://github.com/microsoft/terminal/pull/8315 solves this as well.

@Don-Vito commented on GitHub (Dec 10, 2020): @zadjii-msft, @DHowett - I think that https://github.com/microsoft/terminal/pull/8315 solves this as well.
Author
Owner

@DHowett commented on GitHub (Dec 10, 2020):

Excellent! Thank you.

@DHowett commented on GitHub (Dec 10, 2020): Excellent! Thank you.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#9429