我一直在尝试将数据压缩到gzip,但我似乎无法使其工作。 这是我的Gzip转换代码:
function ConvertTo-GzipData { [cmdletBinding()] param( [parameter(Mandatory = $true, ValueFromPipeline = $false)] [byte[]]$Data ) Process { $output = [System.IO.MemoryStream]::new() $gzipStream = New-Object System.IO.Compression.GzipStream $output, ([IO.Compression.CompressionMode]::Compress) $gzipStream.Write($Data, 0, $Data.Length) $gzipStream.Close() return $output.ToArray() } }
这是使用gzip压缩功能的函数。 此函数获取一个字符串,该字符串转到$ data
function Send-Data { Param( [string]$evidence_type, [string]$data ) $encoding = [System.Text.Encoding]::UTF8 $enc_data = $encoding.GetBytes($data) $gzippedData = ConvertTo-GzipData -Data $enc_data write-host $gzippedData }
我收到以下错误:
ConvertTo-GzipData:无法处理参数转换 参数'数据'。无法转换类型的“System.Byte []”值 “System.Byte []”键入“System.Byte”。在行:10 char:45 + $ gzippedData = ConvertTo-GzipData -Data $ enc_data + ~~~~~~~~~ + CategoryInfo:InvalidData:(:) [ConvertTo-GzipData],ParameterBindingArgumentTransformationException + FullyQualifiedErrorId:ParameterArgumentTransformationError,ConvertTo-GzipData