powershell - 添加低于特定值的颜色代码以查看硬盘空间?
问题描述
我只是想知道是否有办法在低于某个值时为结果添加颜色?
我运行一个脚本来从服务器中提取驱动器大小,我想声明返回的某个输出值是不同的颜色,所以低于 15GB 的任何东西都是橙色或类似的东西。
这甚至可能吗?
PS C:\Windows\system32> Foreach ($server in $servers)
>> {
>> $disks = Get-WmiObject Win32_LogicalDisk -ComputerName $server -Filter DriveType=3 |
>> Select-Object DeviceID,
>> @{'Name'='Size'; 'Expression'={[math]::truncate($_.size / 1GB)}},
>> @{'Name'='Freespace'; 'Expression'={[math]::truncate($_.freespace / 1GB)}}
>>
>> $server
>>
>> foreach ($disk in $disks)
>> {
>> $disk.DeviceID + $disk.FreeSpace.ToString("N0") + "GB / " + $disk.Size.ToString("N0") + "GB"
>>
>> }
>> }
请注意不是我写的脚本,我是在网上找到的。
补充一点,这里是我的部分输出的一个例子:
RDS20
C:70GB / 119GB
RDS21
C:68GB / 119GB
RDS22
C:66GB / 119GB
RDS23
C:70GB / 119GB
RDS24
C:14GB / 119GB
RDS25
C:78GB / 129GB
在 RDS24 显示 14GB 的地方,我希望它是一种与众不同的颜色。所以低于 15GB 的任何东西都是不同的颜色。
解决方案
使用 write-host 很简单:
foreach ($disk in $disks) {
# Set the output to a variable instead:
$space = $disk.DeviceID + $disk.FreeSpace.ToString("N0") + "GB / " + $disk.Size.ToString("N0") + "GB"
# if free space is less than 15 GB, make it red:
if ($disk.Freespace -lt 15) {
Write-Host $space -ForegroundColor Red
}
else {
Write-Host $space
}
}
输出:
serverA
C:20GB / 99GB
D:112GB / 149GB
serverB
C:1GB / 99GB ## This line is red
我个人更喜欢[math]::round()
磁盘大小,但这只是偏好。
推荐阅读
- angular - 更新到最新的 Angular CLI 后,ng serve 命令不起作用
- python - 使用 Spacy NLP 的多行命名实体识别
- java - Spring Fox Swagger - 有没有办法为不属于项目的 API 添加文档
- c++ - 如何强制 g++ 仅编译 c++11 标准?
- android - ANDROID:.java 文件变成了 XML
- python - 我得到一个布尔值的“列表索引超出范围”,但当我在 for 和 if 循环中使用该布尔值时却没有?
- c# - HashSet UnionWith AddIfNotPresent 死锁
- graphics - 从 2D 相机视图投影到 2D 鸟瞰视图
- winforms - smtp error 无法从传输连接读取数据:现有连接被远程主机强行关闭
- python - 按月和年分组并对Python中的所有列求和