将输出值存储在变量中,并在powershell中执行算术运算

将输出值存储在变量中,并在powershell中执行算术运算,powershell,Powershell,我正在编写powershell脚本以获取powershell中某个进程的内存值,我还需要将该值除以1024以转换KB/MB 比如说 PS>$memory=获取进程nginx |选择对象WS |格式宽-第1列 PS>>$内存 6254824 此值以字节为单位。我需要将此值转换为KB/MB。然后我做了div手术 PS>>$memory=$memory/1024 方法调用失败,因为[System.Object[]]不包含名为“op_Division”的方法 在C:\script\tomcat mem.

我正在编写powershell脚本以获取powershell中某个进程的内存值,我还需要将该值除以1024以转换KB/MB

比如说

PS>$memory=获取进程nginx |选择对象WS |格式宽-第1列

PS>>$内存

6254824

此值以字节为单位。我需要将此值转换为KB/MB。然后我做了div手术

PS>>$memory=$memory/1024

方法调用失败,因为[System.Object[]]不包含名为“op_Division”的方法

在C:\script\tomcat mem.ps1:3 char:13
+$mem=$mem/因为您正在管道化到
格式范围
,所以返回的是一个对象,而不是一个可以简单地转换为
int
的类型。以下情况更为合适:

$memory=Get Process nginx |选择对象-ExpandProperty WS
$memory/1024
证明:

$m=get process explorer |选择-expandproperty ws
$m.gettype()
IsPublic IsSerial名称基类型
-------- -------- ----                                     --------
True Int32 System.ValueType
$m=获取process explorer |选择ws |宽格式-第1列
$m.gettype()
IsPublic IsSerial名称基类型
-------- -------- ----                                     --------
True对象[]系统.数组
您可以看到,第一个版本已隐式转换为
Int32
,因此可以对其运行除法操作