Invoke-Command: improve handling of variables with $using: expression (#16113)

This commit is contained in:
dwtaber 2021-10-06 13:43:56 -04:00 committed by GitHub
parent 2f57bf848b
commit 53ac646cc0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 3 deletions

View file

@ -1261,7 +1261,8 @@ namespace System.Management.Automation.Language
var varAst = ast as VariableExpressionAst;
if (varAst != null)
{
string varName = varAst.VariablePath.UserPath;
VariablePath varPath = varAst.VariablePath;
string varName = varPath.IsDriveQualified ? $"{varPath.DriveName}_{varPath.UnqualifiedPath}" : $"{varPath.UnqualifiedPath}";
string varSign = varAst.Splatted ? "@" : "$";
string newVarName = varSign + UsingExpressionAst.UsingPrefix + varName;
@ -2329,7 +2330,8 @@ namespace System.Management.Automation.Language
// We are done processing the current ParameterAst
if (astStartOffset >= endOffset) { break; }
string varName = varAst.VariablePath.UserPath;
VariablePath varPath = varAst.VariablePath;
string varName = varPath.IsDriveQualified ? $"{varPath.DriveName}_{varPath.UnqualifiedPath}" : $"{varPath.UnqualifiedPath}";
string varSign = varAst.Splatted ? "@" : "$";
string newVarName = varSign + UsingExpressionAst.UsingPrefix + varName;

View file

@ -2374,7 +2374,8 @@ namespace Microsoft.PowerShell.Commands
foreach (var varAst in usingVariables)
{
string varName = varAst.VariablePath.UserPath;
VariablePath varPath = varAst.VariablePath;
string varName = varPath.IsDriveQualified ? $"{varPath.DriveName}_{varPath.UnqualifiedPath}" : $"{varPath.UnqualifiedPath}";
string paramName = UsingExpressionAst.UsingPrefix + varName;
string paramNameWithDollar = "$" + paramName;