我正在尝试使用 ActiveBatch ExecutePowerShellScript作业步骤将 a 转换System.Byte[]
为字符串。ActiveBatch 作业步骤有一个属性来指定InputObjects
,我将其设置为上一个作业步骤的输出(这只是作业步骤编辑器中的一个字段,而不是 PowerShell 代码)。然后您显然可以访问$input
在 PowerShell 脚本中调用的变量。
只需$input
我得到一个转换为整数的字节列表。我得到$input | gm
:
There are 25 output objects generated by the Powershell script
TypeName: System.Byte[]
Name MemberType Definition
---- ---------- ----------
Count AliasProperty Count = Length
Address Method System.Byte&, mscorlib, Version=2.0.0.0, Culture...
如果我尝试[System.Text.Encoding]::Unicode.GetString($input)
,我会得到:
执行 PowerShell 脚本时发生异常:找不到“GetString”的重载和参数计数:“1”。
如果我尝试[System.Text.Encoding]::Unicode.GetString(,$input)
,我会得到:
执行 PowerShell 脚本时出现异常:方法调用中缺少“)”。
如果我尝试:
[byte[]]$bytes = $input
[System.Text.Encoding]::Unicode.GetString($bytes)
我得到:
执行 PowerShell 脚本时出现异常:无法将“System.Management.Automation.Runspaces.PipelineReader
1+<GetReadEnumerator>d__0[System.Object]" value of type "System.Management.Automation.Runspaces.PipelineReader
1+d__0[[System.Object, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]”转换为“System.Management.Automation.Runspaces.PipelineReader 1+d__0 。字节[]”。
有任何想法吗?