嘿伙计们,我无法弄清楚如何将以下函数(需要输入)转换为变量
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
那我该怎么办?
谢谢
答案 0 :(得分:5)
如果没有更多信息来证明这一点,我会考虑而不是:
$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)
答案 1 :(得分:2)
如果我理解你的问题,你就是说你要调用一个名字存储在变量中的函数。一种方法是在字符串中嵌入子表达式 - $()
- 并使用调用/调用运算符 - &
来执行该函数。例如:
function T {
param(
$a
)
"Result = $a"
}
$fn = "T"
"We want $(& $fn Test)"
输出:
We want Result = Test
答案 2 :(得分:1)
New-Alias -Name `$convert2letter -Value Convert-ToLetters
不确定你想要达到的目标,这并没有多大意义。