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

This commit is contained in:
dwtaber
2021-10-06 10:43:56 -07:00
committed by GitHub
parent 2f57bf848b
commit 53ac646cc0
2 changed files with 6 additions and 3 deletions
@@ -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;
@@ -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;