加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

powershell – echo [uint32] :: maxvalue说’uint32 :: maxvalu

发布时间:2020-12-14 02:04:42 所属栏目:Windows 来源:网络整理
导读:[DBG]: PS C:Windowssystem32 echo [uint32]::maxvalue[uint32]::maxvalue 和 [DBG]: PS C:Windowssystem32 $mv = [uint32]::maxvalue[DBG]: PS C:Windowssystem32 echo $mv4294967295 我确信powershell有一个很好的理由这样做:-).有道路我可以告诉它
[DBG]: PS C:Windowssystem32>>> echo [uint32]::maxvalue
[uint32]::maxvalue

[DBG]: PS C:Windowssystem32>>> $mv = [uint32]::maxvalue
[DBG]: PS C:Windowssystem32>>> echo $mv
4294967295

我确信powershell有一个很好的理由这样做:-).有道路我可以告诉它不要这样做.我实际上是传递和int到一个函数,有时我想传递maxvalue

我知道我能做到

$mv = [uint32]::maxvalue
MyFunc $mv

我想知道是否有类似的东西

MyFunc ([uint32]::maxvalue)
MyFunc `[uint32::maxvalue`

等等

解决方法

原因是echo命令将参数解释为字符串而不是任意值.因此,在第一个例子中,它从字面上打印出论据,而不是将其解释为一个值.在第二种情况下,虽然它被解释为表达式并被赋值给一个值.

您可以通过自己创建一个函数来重现此行为,该函数将输出回显到控制台.

function example { 
  param ([string]$arg)
  Write-Output $arg
}

example [uint]
> [uint]
example 42
> 42

您还可以强制echo函数将其解释为值,方法是使用()s指定它是一个表达式

echo [uint32]::maxvalue
> [uint32]::maxvalue
echo ([uint32]::maxvalue)
> 4294967295

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读