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