我曾经通过以下代码获取磁盘空间值,但是当我将此值传递给文本框时,它会显示一些消息
$val = Get-WmiObject -Class Win32_LogicalDisk |
Where-Object {$_.DriveType -eq 3} |
Select-Object DeviceID, Description,`
@{"Label"="DiskSize(GB)";"Expression"={"{0:N}" -f ($_.Size/1GB) -as [float]}}, `
@{"Label"="FreeSpace(GB)";"Expression"={"{0:N}" -f ($_.FreeSpace/1GB) -as [float]}} |
FT -AutoSize
结果是我的文本框名称
$result.Text+= $val
另外,我想显示可用磁盘空间是否小于1 gb
,然后它会在我的文本框中显示警告消息,那么我该怎么办?
另外,我想获得正在运行的交换服务
$outputBox.Text+= Get-Service | Where {$_.DisplayName -Like "Microsoft Exchange*"} | select-object name ,status
但是没有在文本框中显示任何内容
答案 0 :(得分:2)
ft是format-table的缩写,它通常不仅仅是控制台的格式化,因此对用户来说看起来很漂亮,但它打破了powershell对象。如果要将其分配给变量,请尝试删除它。另外,如果你只想要自由空间,试试这个,虽然它可能需要根据你试图摆脱的东西进行调整
$result.Text += (Get-WmiObject -Class Win32_LogicalDisk | Where-Object {$_.DriveType -eq 3} | % {$_.deviceid + ' ' + ('{0:N}' -f ($_.FreeSpace/1GB) -as [float])}) -join '; '
$ouputBox.text += (Get-Service | Where {$_.DisplayName -Like "Microsoft Exchange*"} | % {$_.name + ' ' + $_.status}) -join '; '