[英]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.