繁体   English   中英

Powershell格式字符串,带有函数输出

[英]Powershell format string with output from function

嘿家伙我无法弄清楚如何将以下函数(需要输入)转换为变量

 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

那我该怎么办?

谢谢

如果没有更多的信息来证明它的合理性,我会考虑而不是:

 $WR= "$convert2letter($CValue1)" + "-" + "$convert2letter($CValue2)" + "-" + "3" 

你应该这样做:

$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
New-Alias -Name `$convert2letter -Value Convert-ToLetters

不确定你想要实现什么,这没有多大意义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM