HTML输出 一 控制列背景颜色
#将需要读取的域名和端口列表保存在名为ports01.txt、ports02的文件中,文件与脚本位于相同目录下
$CurrentPath = $MyInvocation.MyCommand.Path.substring(0,$MyInvocation.MyCommand.Path.LastIndexOf('\')+1)
$file = "ports01.txt"
$FilePath = $CurrentPath + $file
$Infors = Get-Content $FilePath
$Temp_PortStatushtm = "C:\Windows\Temp\PortStatushtm.htm"
If (Test-Path $Temp_PortStatushtm)
{Remove-Item $Temp_PortStatushtm}
$Domainname = $Infors[0].Split(",")[0]
#将域名解析为IP,因为可能会解析出多个IP,此处只取第一个IP
$IP = [System.Net.Dns]::GetHostAddresses($Domainname)[0]
Start-Sleep -Milliseconds 500
#判断IP是否格式正确
$Address = [System.Net.IPAddress]::Parse($IP)
$IPstring = $Address.IPAddressToString
#端口连通性测试函数
Function Port-Test ($Address,$Port)
{
$Timeout = 1000
$Socket = New-Object System.Net.Sockets.TCPClient
$Connect = $Socket.BeginConnect($Address,$Port,$null,$null)
Start-Sleep -Milliseconds 500
If ( $Connect.IsCompleted )
{
$Wait = $Connect.AsyncWaitHandle.WaitOne($TimeOut,$false)
If(!$Wait)
{
$Socket.Close()
Return $false
}
Else{
$Socket.EndConnect($Connect)
$Socket.Close()
Return $true
}
}
Else{Return $false}
}
$Server = $Domainname + " : " + $IPstring
#将结果临时保存到名为csv的hash表中,便于html格式的输出
$csv=@()
Foreach ($infor in $Infors)
{
$port = $Infor.Split(",")[1]
$Status= Port-Test $Address $port
$content=""|select Port,Status
$content.Port = $port
$content.Status = $status
$csv += $content
}
#输出HTML格式:
#-head:控制整体样式
#{$_ -replace "<table>","<table align=center>"}:表格居中显示
#$_ -replace "<td>","<td bgcolor=cyan>"}:改变表格列背景颜色
$csv|Select Port,Status | ConvertTo-Html `
-head '<style type="text/css"> body,table,td,th {font-family:Tahoma; color:Black; Font-Size:20pt} body {text-align:center} th {font-weight:bold}</style>' `
-Title "Port Monitor" `
-Body "<H4>$server</H4>" | `
ForEach{$_ -replace "<table>","<table align=center>"} |`
ForEach{$_ -replace "<td>","<td bgcolor=cyan>"} | `
Foreach{
If($_ -like "*false</td>*")
{$_ -replace "<td bgcolor=cyan>false","<td bgcolor=red>False"}
#Elseif($_ -like "*true</td>*")
# {$_ -replace "<td bgcolor=cyan>true","<td bgcolor=green>True"}
Else{$_}
} >>$Temp_PortStatushtm
#Invoke-Item $Temp_PortStatushtm
##############################################################################
$file = "ports02.txt"
$FilePath = $CurrentPath + $file
$Infors = Get-Content $FilePath
$Temp_PortStatushtm = "C:\Windows\Temp\PortStatushtm.htm"
$Domainname = $Infors[0].Split(",")[0]
$IP = [System.Net.Dns]::GetHostAddresses($Domainname)[0]
Start-Sleep -Milliseconds 500
$Address = [System.Net.IPAddress]::Parse($IP)
$IPstring = $Address.IPAddressToString
$t = " √ "
$f = " × "
Function Port-Test ($Address,$Port)
{
$Timeout = 1000
$Socket = New-Object System.Net.Sockets.TCPClient
$Connect = $Socket.BeginConnect($Address,$Port,$null,$null)
Start-Sleep -Milliseconds 500
If ( $Connect.IsCompleted )
{
$Wait = $Connect.AsyncWaitHandle.WaitOne($TimeOut,$false)
If(!$Wait)
{
$Socket.Close()
Return $false
}
Else{
$Socket.EndConnect($Connect)
$Socket.Close()
Return $true
}
}
Else{Return $false}
}
$Server = $Domainname + " : " + $IPstring
$csv=@()
Foreach ($infor in $Infors)
{
$port = $Infor.Split(",")[1]
$Status= Port-Test $Address $port
$content=""|select Port,Status
$content.Port = $port
$content.Status = $status
$csv += $content
}
$csv|Select Port,Status | ConvertTo-Html `
-head '<style type="text/css"> body,table,td,th {font-family:Tahoma; color:Black; Font-Size:20pt} body {text-align:center} th {font-weight:bold}</style>' `
-Title "Port Monitor" `
-Body "<H4>$server</H4>" | `
ForEach{$_ -replace "<table>","<table align=center>"} |`
ForEach{$_ -replace "<td>","<td bgcolor=cyan>"} | `
Foreach{
If($_ -like "*false</td>*")
{$_ -replace "<td bgcolor=cyan>false","<td bgcolor=red>False"}
Else{$_}
} >>$Temp_PortStatushtm
#打开html输出结果
Invoke-Item $Temp_PortStatushtm
参考:http://www.pstips.net/creating-colorful-html-reports.html
====================================
导出html格式文件:
Get-Website|Select @{Label="Sitename";Expression={$_.Name}}, @{Label="Logdir";Expression={"W3SVC" + $_.id}} |sort Sitename |ConvertTo-Html |out-file d:\iislog\Readme.htm -Force
导出html格式文件,包含超链接:
Add-Type -AssemblyName System.Web
$ip = (gwmi Win32_NetworkAdapterConfiguration -Filter "IPEnabled='true'" | ? {$_.DefaultIPGateway -ne $null}).IPAddress[0]
$html = Get-Website|Select @{Label="Website";Expression={$_.Name}}, @{Label="Website Log";Expression={'<a href="http://' + $ip + ":11000/W3SVC" + $_.id + '">' + "http://" + $ip + ":11000/W3SVC" + $_.id + '</a>'}} |sort Website |ConvertTo-Html
$html = $html | % { if($_ -match 'a href' ) { [System.Web.HttpUtility]::HtmlDecode($_) } else { $_ } }
$html |out-file d:\iislog\Readme.htm -Force
HTML输出 一 控制列背景颜色的更多相关文章
- HTML输出 二 控制行背景颜色
$Infors = Get-Content ports01.txt$Temp_PortStatustxt = "C:\Windows\Temp\PortStatustxt.txt" ...
- VC编程中如何设置对话框的背景颜色和静态文本颜色
晚上编一个小程序,涉及到如何设置对话框的背景颜色和静态文本颜色.这在VC6.0中本来是一句话就搞定的事.在应用程序类中的InitInstance()函数添加: //设置对话框背景和文本颜色 SetDi ...
- 第十三篇-通过Button设置文本背景颜色
MainActivity.java package com.example.aimee.buttontest; import android.annotation.SuppressLint; impo ...
- [转]如何在Windows 10中更改文件夹背景颜色
ini文件.我们甚至可以使用相同的技术将图片设置为文件夹背景. 已有工具可以更改Windows 7中Windows资源管理器背景的颜色,并将图像设置为Windows 7中的文件夹背景,但这些工具与Wi ...
- []如何在Windows 10中更改文件夹背景颜色
ini文件.我们甚至可以使用相同的技术将图片设置为文件夹背景. 已有工具可以更改Windows 7中Windows资源管理器背景的颜色,并将图像设置为Windows 7中的文件夹背景,但这些工具与Wi ...
- qt tableview列头背景颜色设置
设置表列头背景颜色 QHeaderView::section { background: rgb(255, 255, 127); }
- Silverlight DataGrid数据行背景颜色控制
sdk:DataGrid数据绑定后,部分特殊的行需要用不同的背景颜色来显示.(注册DataGrid的LoadingRow事件) private void radGridView_LoadingRow( ...
- ext js 4.0 grid表格根据列值的不同给行设置不同的背景颜色
Code: Ext.create('Ext.grid.Panel', { ... viewConfig: { getRowClass: function(record) { return record ...
- linux BASH shell设置字体与背景颜色
linux BASH shell下设置字体及背景颜色的方法. BASH shell下设置字体及背景颜色 echo -e "\e[31mtest\e[41m" \e[30m 将字 ...
随机推荐
- SpringMVC——实现拦截器
1. SpringMVC拦截器的概念与Struts2相同 2. 实现拦截器 (1) 项目结构 (2) 实现HandlerInterceptor接口 package com.zhengbin.contr ...
- 【转】WPS文档怎么清除格式
原文网址:http://jingyan.baidu.com/article/c74d600060dc4a0f6a595d21.html 我们知道有时候如果我们粘贴了别的地方的文字到自己的文档里来,就会 ...
- TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议
把这三个协议放到一起学习是因为这三个协议处于同一层,ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息.数据链路层可以从ARP得到数据的传送信息,而从IP得到要传输的数 ...
- POJ 1160 Post Office
题意:有n个村庄,要在其中m个村庄里建邮局,每个村庄去邮局的代价为当前村庄到最近的一个有邮局村庄的路程,问总最小代价是多少. 解法:dp.dp[i][j]表示在前j个村庄建立i个邮局后的代价,则状态转 ...
- Survival(ZOJ 2297状压dp)
题意:有n个怪,已知杀死第i个怪耗费的血和杀死怪恢复的血,和杀死boss耗的血,血量不能超过100,若过程中血小于0,则失败,问 是否能杀死boss(boss最后出现). 分析:就是求杀死n个怪后剩余 ...
- opencv人脸检测分类器训练小结
这两天在初学目标检测的算法及步骤,其中人脸检测作为最经典的算法,于是进行了重点研究.该算法最重要的是建立人脸检测分类器,因此我用了一天的时间来学习分类器的训练.这方面的资料很多,但是能按照一个资料运行 ...
- QT-【转】基础(略)
第0篇 开始学习Qt 与Qt Creator 第1篇 基础(一)Qt开发环境的搭建和hello world 第2篇 基础(二)编写Qt多窗口程序 第3篇 基础(三)Qt登录对话框 第4篇 基础(四)添 ...
- Linux下gcc和g++编译helloworld
linux C(hello world) 1.使用vi/vim进行编写代码并保存为hello_world.c.如下: 1 2 3 4 5 6 /* This is my first C program ...
- jQuery/CSS3大屏下拉菜单 自定义子菜单内容
这是一款样式很酷的jQuery/CSS3下拉菜单,首先这款CSS3菜单是宽屏的,主要是下拉菜单非常大气,更重要的是,下拉菜单的内容可以自己定义,也就是说,下拉菜单中可以定义菜单.图片等HTML元素,是 ...
- DRAM 内存介绍(一)
转载自博客大神迈克老狼的blog: http://www.cnblogs.com/mikewolf2002/archive/2012/11/13/2768804.html 参考资料:http://ww ...