html - powershell 脚本丢失格式 HTML
问题描述
我是脚本新手。我有两个问题。
我创建了一个 .ps1 以使设备低于 10% 的可用空间:
Get-Content "C:\temp\servers.txt" | Sort | ForEach {
$computer = $_
$disks = @(Get-WmiObject Win32_LogicalDisk -ComputerName $computer -Filter 'DriveType = 3') | Where-Object {($_.freespace/$_.size) -le '0.1' -and $_.DeviceID -ne 'C:','F:','E:'}
foreach ($disk in $disks) {
$props = @{
Server = $computer
Drive = $disk.Caption
AmpliarGB = [System.Math]::Round(($disk.Size / 1GB) * (10 /100) - ($disk.FreeSpace / 1GB) +40)
}
New-Object PsObject -Property $props
}
} | Select Server,Drive,AmpliarGB | ConvertTo-Html -Head $Header | Out-File "C:\temp\Ampliar.html"
$Header = @"
<style>
TABLE {border-width: 1px; border-style: solid; border-color: black; border-collapse: collapse;}
TD {border-width: 1px; padding: 3px; border-style: solid; border-color: black;}
</style>
"@
第一个问题:
- 我必须排除驱动器 C:、F: 和 E:
第二个问题:
- 当我通过 powershellISE 运行脚本时,html 文件是使用 html 标头创建的:通过 powershellISE 但是当我在 powershell 中运行它时,标头消失了:使用 powershell 运行
任何建议将不胜感激。
谢谢你
解决方案
对您的代码进行快速而肮脏的修复是
- 将标题定义放在调用上方
ConvertTo-Html
- 更改排除部分 `-notmatch 'C|E|F'
但是,我建议您做几件事来改进您的代码。
首先,CIM cmdlet 替换了已弃用的 WMI cmdlet。
其次,与其拉出所有驱动器,包括您不想要的驱动器并对其执行昂贵的计算,我们应该首先将它们过滤掉。
三、[PSCustomObject]类型加速器比New-Object方法快
Get-Content "C:\temp\servers.txt" | Sort | ForEach {
$disks = Get-CimInstance -ClassName -ComputerName $_ Win32_LogicalDisk -Filter "DriveType = 3 and DeviceID != 'C:' and DeviceID != 'E:' and DeviceID != 'F:'"
foreach ($disk in $disks) {
[PSCustomObject]@{
Server = $_
Drive = $disk.Caption
AmpliarGB = [System.Math]::Round(($disk.Size / 1GB) * (10 /100) - ($disk.FreeSpace / 1GB) +40)
}
}
}
推荐阅读
- c# - 使用 Accord.net 库进行分类抛出 IndexOutOfRangeException
- javascript - 如何增加对 HTMLImageElement.decode 调用量的限制?
- flutter - 使用 `async_resource` 缓存 HTTP 请求
- maven - 如何将 jenkins 工作捆绑到 jenkins.war
- xamarin.forms - 如何在 EntityFramework Core Sqlite 中启用迁移
- c# - 如何在 Python 中设置默认的十进制数字分隔符?
- c++ - 在 Windows 上使用 C++ 向广播地址发送 (g)ARP 请求
- caching - Ehcache 和 CacheWriter (write-behind) 关系
- python - 从多个 excel 工作表在同一索引上附加熊猫数据框
- javascript - 如何在 Vuex 中访问 mapState 并将其渲染以查看