Home > Windows にまつわる e.t.c.

PowerShell で UInt32 に最大値をセットする


PowerShell で UInt32 に最大値(0xffffffff)をセットしようとするとエラーになってしまいます。

 

これは、0xffffffff が Int32 の -1 と判断されてしまうからです。

この問題を回避するには、文字列として "0xffffffff" を渡し、受け取る側でキャストします。

[System.UInt32]$a = "0xffffffff"

 

PowerShell Core であれば、値に u を付けて unsigned を指定できるので、以下のようにすることもできます。

[System.UInt32]$a = 0xffffffffu

 

参考情報

数値リテラルについて - PowerShell | Microsoft Docs
https://docs.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/about/about_numeric_literals?WT.mc_id=WD-MVP-36880

 

back.gif (1980 バイト)

home.gif (1907 バイト)

Copyright © MURA All rights reserved.