PrimalScript 2015 failed to show error line number with PV2

This forum can be browsed by the general public. Posting is limited to current SAPIEN license holders with active maintenance and does not offer a response time guarantee.
Forum rules
DO NOT POST LICENSE NUMBERS, ACTIVATION KEYS OR ANY OTHER LICENSING INFORMATION IN THIS FORUM.
Only the original author and our tech personnel can reply to a topic that is created in this forum. If you find a topic that relates to an issue you are having, please create a new topic and reference the other in your post.

Any code longer than three lines should be added as code using the 'Select Code' dropdown menu or attached as a file.
This topic is 8 years and 5 months old and has exceeded the time allowed for comments. Please begin a new topic or use the search feature to find a similar but newer topic.
User avatar
clum09
Posts: 150
Last visit: Sun Jan 21, 2024 5:07 pm

PrimalScript 2015 failed to show error line number with PV2

Post by clum09 »

Hello,

I try to open a PowerShell script in PrimalScript 2015 with a PowerShell V2 mode - I select the v2 icon on top of the Platform menu bar.

The code is shown below:

Code: Select all

[CmdletBinding()]
	Param([Parameter(Mandatory=$true,
		ValueFromPipeline=$true,
		ValueFromPipelinebyPropertyName=$true)]
		[object]$object
	)
	BEGIN {}
	PROCESS {
		
	}
	END {}
}
Then I press on the Run button to test the script, but I get from the Output screen is the error below - there is no indication what line of the code that this error was generated from.

ERROR: <position> : Missing ] at end of type token.
ERROR: + CategoryInfo : ParserError: (Parameter(Mandatory=$true,:String) [], ParseException
ERROR: + FullyQualifiedErrorId : EndSquareBracketExpectedAtEndOfType
ERROR:

Execution time: 00:00:02

However, when I select the PowerShell V4 mode - I select the v4 icon on top of the Platform menu bar, I get the error below.

ERROR: At C:\Scriptings\PowerShell\Test.ps1:491 char:1
ERROR: + [CmdletBinding()]
ERROR: + ~~~~~~~~~~~~~~~~~
ERROR: Unexpected attribute 'CmdletBinding'.
ERROR:
ERROR: At C:\Scriptings\PowerShell\Test.ps1:492 char:2
ERROR: + Param([Parameter(Mandatory=$true,
ERROR: + ~~~~~
ERROR: Unexpected token 'Param' in expression or statement.
ERROR:
ERROR: At C:\Scriptings\PowerShell\Test.ps1:502 char:1
ERROR: + }
ERROR: + ~
ERROR: Unexpected token '}' in expression or statement.
ERROR:
ERROR:
ERROR: + CategoryInfo : ParserError: (:) [], ParseException
ERROR: + FullyQualifiedErrorId : UnexpectedAttribute
ERROR:

Execution time: 00:00:02

How can I set up PrimalScript 2015 so that it can it can generate the error ouput for both PowerShell V2 and PowerShell V4 editing modes?
User avatar
SAPIEN Support Forums
Posts: 945
Last visit: Thu Oct 22, 2015 1:10 pm

PrimalScript 2015 failed to show error line number with PV2

Post by SAPIEN Support Forums »

This is an automated post. A real person will respond soon.

Thank you for posting, clum09.

Did you remember to include the following?
  • 1. Product, version and build (e.g. Product: PrimalScript 2014, Version & Build: 7.0.46. Version and build information can be found in the product's About box accessed by clicking the blue icon with the 'i' in the upper right hand corner of the ribbon.)
    2. Specify if you are running a 32 or 64 bit version
    3. Specify your operating system and if it is 32 or 64 bit.
    4. Attach a screenshot if your issue can be seen on the screen
    5. Attach a zip file if you have multiple files (crash reports, log entries, etc.) related to your issue.
If not, please take a moment to edit your original post or reply to this one.

*** Make sure you do not post any licensing information ***
User avatar
Alexander Riedel
Posts: 8478
Last visit: Tue Mar 26, 2024 8:52 am
Answers: 19
Been upvoted: 37 times

Re: PrimalScript 2015 failed to show error line number with

Post by Alexander Riedel »

What you see is the output from the PowerShell engine, not something that PrimalScript generates.
Unfortunately we cannot change what any given PowerShell engine outputs as error. Only Microsoft can do that.
Alexander Riedel
SAPIEN Technologies, Inc.
User avatar
clum09
Posts: 150
Last visit: Sun Jan 21, 2024 5:07 pm

Re: PrimalScript 2015 failed to show error line number with

Post by clum09 »

When I ran this code in a console on a computer with PowerShell V2, I got the following error output:

Unexpected token '}' in expression or statement.
At C:\Scripts\Test.ps1:18 char:2
+ } <<<<
+ CategoryInfo : ParserError: (}:String) [], ParseException
+ FullyQualifiedErrorId : UnexpectedToken


As you can see, at least I can see what line generated the error.
User avatar
Alexander Riedel
Posts: 8478
Last visit: Tue Mar 26, 2024 8:52 am
Answers: 19
Been upvoted: 37 times

Re: PrimalScript 2015 failed to show error line number with

Post by Alexander Riedel »

Notice the difference? You run this in V2 mode on a machine with PowerShell V4 and you get the original message.
You run it on a machine with a TRUE V2 installation you get a different message.

Microsoft never allows side-by-side installation of powershell versions.
So once you have V3,V4 or V5 installed, anything V2 is just a different mode of the same engine. It is not the same as using a real V2 engine.

Again, we do not generate, alter, modify, shorten or otherwise influence PowerShell error messages. What you see in the output window is what Powershell returns. We know it is inconsistent across versions and platforms. Please feel free to tell Microsoft about it.
Alexander Riedel
SAPIEN Technologies, Inc.
User avatar
clum09
Posts: 150
Last visit: Sun Jan 21, 2024 5:07 pm

Re: PrimalScript 2015 failed to show error line number with

Post by clum09 »

I did not run this script on a machine with multiple PowerShell versions installed.

I just copied this script to a computer that only had PowerShell version 2, and ran it in either the PowerShell console or within the PowerShell ISE.

The result is the same. The machine I ran this script has the following PowerShell version information as shown below.

PS C:\Users\TEST> $PSVersionTable

Name Value
---- -----
CLRVersion 2.0.50727.4963
BuildVersion 6.1.7600.16385
PSVersion 2.0
WSManStackVersion 2.0
PSCompatibleVersions {1.0, 2.0}
SerializationVersion 1.1.0.1
PSRemotingProtocolVersion 2.1

The output from the ISE output windows or the PowerShell console is:

Unexpected token '}' in expression or statement.
At C:\Users\Testuser\Test.ps1:18 char:2
+ } <<<<
+ CategoryInfo : ParserError: (}:String) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : UnexpectedToken


compared to the output from PrimalScript 2015 in the PowerShell v2 mode, which is:

ERROR: <position> : Missing ] at end of type token.
ERROR: + CategoryInfo : ParserError: (Parameter(Mandatory=$true,:String) [], ParseException
ERROR: + FullyQualifiedErrorId : EndSquareBracketExpectedAtEndOfType
ERROR:

PrimalScript 2015 v2 mode just failed to capture the line number where the error occurred.
User avatar
Alexander Riedel
Posts: 8478
Last visit: Tue Mar 26, 2024 8:52 am
Answers: 19
Been upvoted: 37 times

Re: PrimalScript 2015 failed to show error line number with

Post by Alexander Riedel »

Again, PrimalScript does not fail to capture anything. You seem to imply that we intentionally withhold error information. We do not.
PrimalScript does not have some magical V2 mode that withholds errors. It just runs the installed Powershell engine in V2 mode. Same as if you start the console in V2 mode.

Run this on that machine where PrimalScript is installed in a V2 console.
If you compare the output from a V2 only machine to a V4 machine you will get different results, of course.

I am not sure how else to explain this.
Alexander Riedel
SAPIEN Technologies, Inc.
This topic is 8 years and 5 months old and has exceeded the time allowed for comments. Please begin a new topic or use the search feature to find a similar but newer topic.