Skip to content

Code Blocks in Documentation should not contain the PowerShell prompt #269

@TBemrose

Description

@TBemrose

Prerequisites

  • Write a descriptive title.
  • Make sure you are able to repro it on the latest version
  • Search the existing issues.

Steps to reproduce

GitHub provides a 'copy' button on code blocks. Code blocks should only contain code, no prompt strings, since they will get copied as well.

For example, docs/Microsoft.PowerShell.ConsoleGuiTools/Out-ConsoleGridView.md:40-42 has the following:

PS C:\> Get-Process | Out-ConsoleGridView

When you click the 'copy' button on this code block, it will copy "PS C:> " in addition to the intended code.

Expected behavior

I expected to be able to click the 'copy' button, paste into PS, hit ENTER and view the results.

Actual behavior

The "PS C:\> " prompt got copy-pasted and screwed everything up when I hit ENTER.

PS: 2 C:\> PS C:\> Get-Process | Out-ConsoleGridView
Get-Process: A positional parameter cannot be found that accepts argument 'Get-Process'.

Error details

Exception             :
    Type              : System.Management.Automation.ParameterBindingException
    Message           : A positional parameter cannot be found that accepts argument 'Get-Process'.
    ParameterName     : Get-Process
    TypeSpecified     : [System.String]
    ErrorId           : PositionalParameterNotFound
    Line              : 1
    Offset            : 1
    CommandInvocation :
        MyCommand        : Get-Process
        BoundParameters  :
            Name : C:\>

        ScriptLineNumber : 1
        OffsetInLine     : 1
        HistoryId        : 2
        Line             : PS C:\> Get-Process | Out-ConsoleGridView
        Statement        : PS C:\> Get-Process
        PositionMessage  : At line:1 char:1
                           + PS C:\> Get-Process | Out-ConsoleGridView
                           + ~~~~~~~~~~~~~~~~~~~
        InvocationName   : PS
        PipelineLength   : 2
        PipelinePosition : 1
    ErrorRecord       :
        Exception             :
            Type    : System.Management.Automation.ParentContainsErrorRecordException
            Message : A positional parameter cannot be found that accepts argument 'Get-Process'.
            HResult : -2146233087
        CategoryInfo          : InvalidArgument: (:) [Get-Process], ParentContainsErrorRecordException
        FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.GetProcessCommand
        InvocationInfo        :
            MyCommand        : Get-Process
            ScriptLineNumber : 1
            OffsetInLine     : 1
            HistoryId        : 2
            Line             : PS C:\> Get-Process | Out-ConsoleGridView
            Statement        : PS C:\> Get-Process
            PositionMessage  : At line:1 char:1
                               + PS C:\> Get-Process | Out-ConsoleGridView
                               + ~~~~~~~~~~~~~~~~~~~
            CommandOrigin    : Internal
        ScriptStackTrace      : at <ScriptBlock>, <No file>: line 1
    TargetSite        :
        Name          : VerifyArgumentsProcessed
        DeclaringType : [System.Management.Automation.CmdletParameterBinderController]
        MemberType    : Method
        Module        : System.Management.Automation.dll
    Data              :
        System.Management.Automation.Interpreter.InterpretedFrameInfo, System.Management.Automation,
Version=7.6.0.500, Culture=neutral, PublicKeyToken=31bf3856ad364e35 : <ScriptBlock>

    Source            : System.Management.Automation
    HResult           : -2146233087
    StackTrace        :
   at System.Management.Automation.CmdletParameterBinderController.VerifyArgumentsProcessed(ParameterBindingException
originalBindingException)
   at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParametersNoValidation(Collection`1
arguments)
   at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParameters(Collection`1 arguments)
   at System.Management.Automation.CommandProcessor.BindCommandLineParameters()
   at System.Management.Automation.CommandProcessor.Prepare(IDictionary psDefaultParameterValues)
   at System.Management.Automation.CommandProcessorBase.DoPrepare(IDictionary psDefaultParameterValues)
   at System.Management.Automation.Internal.PipelineProcessor.Start(Boolean incomingStream)
   at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input)
--- End of stack trace from previous location ---
   at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input)
   at System.Management.Automation.PipelineOps.InvokePipeline(Object input, Boolean ignoreInput,
CommandParameterInternal[][] pipeElements, CommandBaseAst[] pipeElementAsts, CommandRedirection[][]
commandRedirections, FunctionContext funcContext)
   at System.Management.Automation.Interpreter.ActionCallInstruction`6.Run(InterpretedFrame frame)
   at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame)
CategoryInfo          : InvalidArgument: (:) [Get-Process], ParameterBindingException
FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.GetProcessCommand
InvocationInfo        :
    MyCommand        : Get-Process
    ScriptLineNumber : 1
    OffsetInLine     : 1
    HistoryId        : 2
    Line             : PS C:\> Get-Process | Out-ConsoleGridView
    Statement        : PS C:\> Get-Process
    PositionMessage  : At line:1 char:1
                       + PS C:\> Get-Process | Out-ConsoleGridView
                       + ~~~~~~~~~~~~~~~~~~~
    CommandOrigin    : Internal
ScriptStackTrace      : at <ScriptBlock>, <No file>: line 1

Environment data

Name                           Value
----                           -----
PSVersion                      7.6.0
PSEdition                      Core
GitCommitId                    7.6.0
OS                             Microsoft Windows 10.0.26200
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.4
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

Version

PS: 7.6.0, ConsoleGuiTools: 0.7.7

Visuals

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions