gpt4 book ai didi

powershell - 无法将 "System.Object[]"类型的 "System.Object[]"值转换为 "System.Char"类型

转载 作者:行者123 更新时间:2023-12-02 23:22:30 29 4
gpt4 key购买 nike

我刚刚开始使用 powershell,我正在制作一个非常简单的加密功能。我想获取字符串中的每个字符,将其转换为 int 并添加一个选定的数字,然后将其转换回一个字符。

这工作正常:

function encrypt($a){
$letter=[int][char]$a
$letter=$letter+1;
return [char]$letter
}
encrypt("test)

但这不会:
function encrypt($a, $key){
$letter=[int][char]$a
$letter=$letter+$key;
return [char]$letter
}
encrypt("test", 1)

它给了我标题中的错误..我错过了什么?

最佳答案

您以错误的方式传递参数:

encrypt "t" 1

作品。

Powershell 会处理 ("t", 1)作为单个参数。

由于您没有将任何参数指定为强制参数,powershell 将仅使用您提供参数的顺序。所以第一个参数give用于填充变量 $a .您还可以按任何顺序使用名称调用参数:
encrypt -key 5 -a a
f

此外,powershell 无法将整个字符串(例如“test”)解析为字符,它始终需要是单个字符。如果您希望您的函数能够获取整个字符串,您可以执行以下操作:
function encrypt($word,$offset){
foreach ($letter in $word.toCharArray()) {
$letter=[int]$letter+$offset;
$return = $return + [char]$letter
}
return $return
}

这应该提供您正在寻找的内容:
encrypt "test" 2
vguv

关于powershell - 无法将 "System.Object[]"类型的 "System.Object[]"值转换为 "System.Char"类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46112651/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com