Function 带函数输出的Powershell格式字符串

Function 带函数输出的Powershell格式字符串,function,powershell,variables,Function,Powershell,Variables,嘿,伙计们,我很难弄清楚如何将下面的函数(需要输入)转换成变量 function Convert-ToLetters ([parameter(Mandatory=$true,ValueFromPipeline=$true)][int] $value) { $currVal = $value; $returnVal = ''; while ($currVal -ge 26) { $returnVal = [char](($currVal) % 26 + 65) +

嘿,伙计们,我很难弄清楚如何将下面的函数(需要输入)转换成变量

 function Convert-ToLetters ([parameter(Mandatory=$true,ValueFromPipeline=$true)][int] $value)  {
   $currVal = $value;
   $returnVal = '';
   while ($currVal -ge 26) {
      $returnVal = [char](($currVal) % 26 + 65) + $returnVal;
      $currVal =  [int][math]::Floor($currVal / 26)
   }
  $returnVal = [char](($currVal) + 64) + $returnVal;

     return $returnVal
  }
此函数的作用是将数字转换为字母

现在我想要实现的是以某种方式做到这一点:

$convert2letter = Convert-ToLetters()
这样我就可以做

$WR= "$convert2letter($CValue1)" + "-" + "$convert2letter($CValue2)" + "-" + "3"
但是Powershell不允许我做$convert2letter

我能在这里做什么

谢谢

New-Alias -Name `$convert2letter -Value Convert-ToLetters

不确定你想达到什么目的,这没有多大意义。

如果没有更多的信息来证明这一点,我会认为:

你应该这样做:

$WR = "$(Convert-ToLetters $CValue1)-$(Convert-ToLetters $CValue2)-3"
它使用子表达式。或使用格式运算符

$WR = "{0}-{1}-3" -f (Convert-ToLetters $CValue1), (Convert-ToLetters $CValue2)

如果我理解你的问题,你是说你想调用一个名字存储在变量中的函数。一种方法是在字符串中嵌入子表达式-
$()
,并使用调用/调用运算符-
&
执行函数。例如:

function T {
  param(
    $a
  )
  "Result = $a"
}

$fn = "T"
"We want $(& $fn Test)"
输出:

We want Result = Test

相关报道:你为什么要这样做?为什么不直接调用字符串中的函数呢?谢谢。。。。但也许是因为今天我的大脑在衰退。。。我不知道如何在这里应用它…尽管我认识到它非常相关,而且很可能是我问题的解决方案。。。对不起…@马特我不知道你的意思。。。。我的问题是,如果我做一个“转换到字母($Cvalue1)”+“-”+“转换到字母($Cvalue1)”+“-”+“转换到字母($Cvalue1)”+“-”+“3”。。。。。。。。。我将得到Convert-ToLetters(5)-Convert-ToLetters(21)-3的结果,而不是说E-U-3不需要在问题中提出解决方案。这就是答案所在!也许这在Powershell中是不允许的。。。。我试着做一个脚本,在那里我做了几个$WR…这是一个字母数字的“地址”。。。但是我最初得到的源输出在某些部分是数字而不是字母…所以我必须转换它们。。。。我只是想看看我是否可以将$convert2letter设置为没有值的函数。。。。因为在键入带值的函数时不能使用“”,但为什么?为什么你不能调用这个函数?当我尝试。。。。。。I get+$convert2letter=Convert-ToLetters()+~在“(”+类别信息:解析器错误:(:)[]之后应该有一个表达式,ParentContainerRorRecordException+FullyQualifiedErrorId:ExpectedExpressionThank you!!!…我真不敢相信我忘记了这么简单的事情…我最后只是做了$WR=“$(Convert-toletters$Cvalue1)”+“-”+“$Convert-toletters$Cvalue2”+“-“+”+“+”3”…老兄,我今天一定很蠢
We want Result = Test