[英]String Length different when using ISE or Powershell.exe
我使用PowerShell编写了一个小的用户界面,以创建舒适的校验和。 目前,我看到使用ISE和Powershell本身之间的区别。
在ISE中运行PowerShell脚本时,我得到了完美的结果。 这是我正在使用的代码(只是一个片段):
$aaa = (Get-FileHash -Algorithm SHA512 -Path $str_filepath |
Select-Object -Property hash |
Format-Table -HideTableHeaders |
Out-string).TrimEnd().TrimStart()
所以我从文件创建一个校验和(SHA512)。 这些是一个文件的结果,例如:
在ISE中运行脚本:
0518E6DF62AB7B8D7A238039262C7A0E9F1F457D514EDE2BB8B3F4719340EF4B61053EC85ED30D07688B447DBC756F3A7455D7E0C84C7BCF62A8884E4715C8A0
在PowerShell中运行脚本:
0518E6DF62AB7B8D7A238039262C7A0E9F1F457D514EDE2BB8B3F4719340EF4B61053EC85ED30D07688B447DBC756F3A7455D7E0C84C7BCF62A8...
如您所见,使用PowerShell时字符串会缩短。 更令人困惑的是,缩短不是一致的。 在家里的Windows 7计算机上,字符串比在工作的Windows 8.1系统上的字符串还要短。 我知道运行有关样式的脚本时,ISE和PowerShell之间存在一些差异。 但是较短的弦...嗯。
现在是问题了。 在字符串长度限制方面,您有没有遇到过ISE和Powershell之间的区别? 如果是这样。 有没有人为我提供答案,我该如何编写脚本以确保不会出现不同的字符串结果?
如果您需要进一步处理数据, Format-*
不要使用Format-*
cmdlet。 这些cmdlet 仅用于向用户显示数据。 而是扩展对象Get-FileHash
返回的Hash
属性,如下所示:
$str_checksum_sha512 = (Get-FileHash -Algorithm SHA512 -Path $str_filepath).Hash
或像这样:
$str_checksum_sha512 = Get-FileHash -Algorithm SHA512 -Path $str_filepath |
Select-Object -Expand Hash
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.