Skip to content

Commit 757c6b5

Browse files
authored
Write an error for powershell -version 2 (PowerShell#4931)
Write an error for powershell -version <any value>
1 parent b9845d5 commit 757c6b5

File tree

3 files changed

+18
-0
lines changed

3 files changed

+18
-0
lines changed

src/Microsoft.PowerShell.ConsoleHost/host/msh/CommandLineParameterParser.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -548,6 +548,12 @@ private void ParseHelper(string[] args)
548548
_noInteractive = true;
549549
_skipUserInit = true;
550550
_noExit = false;
551+
552+
++i;
553+
if (i < args.Length)
554+
{
555+
WriteCommandLineError(string.Format(CultureInfo.CurrentCulture, CommandLineParameterParserStrings.DeprecatedVersionParameter,args[i]));
556+
}
551557
break;
552558
}
553559

src/Microsoft.PowerShell.ConsoleHost/resources/CommandLineParameterParserStrings.resx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,4 +272,7 @@ EXAMPLES
272272
<data name="InvalidArgument" xml:space="preserve">
273273
<value>Invalid argument '{0}', did you mean:</value>
274274
</data>
275+
<data name="DeprecatedVersionParameter" xml:space="preserve">
276+
<value>Usage of '-Version {0}' is not supported. '-Version' currently only returns the current PowerShell version.</value>
277+
</data>
275278
</root>

test/powershell/Host/ConsoleHost.Tests.ps1

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,15 @@ Describe "ConsoleHost unit tests" -tags "Feature" {
178178
$observed | should be $currentVersion
179179
}
180180

181+
It "-Version should write an error if a value is present" {
182+
$versionValue = "abrakadabra"
183+
$tempFile = Join-Path $testdrive "expectedError.txt"
184+
$observed = & $powershell -version $versionValue > $tempFile
185+
$expectedError = (Get-Content $tempFile)[0]
186+
187+
$expectedError | Should Match $versionValue
188+
}
189+
181190
It "-File should be default parameter" {
182191
Set-Content -Path $testdrive/test -Value "'hello'"
183192
$observed = & $powershell -NoProfile $testdrive/test

0 commit comments

Comments
 (0)