12月4

Powershell修改hosts文件并删除存在hosts记录行

| |
19:00运维管理  From: 本站原创
#使用前请修改域名地址和ip地址

#域名地址
$url="heckjj.com"
#ip地址
$ip="127.0.0.1"
$hosts="$env:windir\System32\drivers\etc\hosts"
$content=Get-Content $hosts
if( ($content |?{$_ -imatch "\s$url"}) -eq $null){
Write-Host "Adding `'$ip`  to `'$url`'"
"`n$ip $url" | Out-File -FilePath $hosts -Append -encoding ascii
Write-Host "Added success!"
}else{
$content=Get-Content $hosts | Where{$_.Indexof("$url") -eq -1}
Write-Host "update `'$ip`  to `'$url`'"
$content+="$ip $url"
$content | Set-Content  $hosts -Force
Write-Host "updated success!"
}

最终效果,第一次是增加,后面一直是替换原来的host记录,实际上是生写了,最开始的思路是找到域名所在的行删除该行,但发现行不通,根本没有获取域名所在行的方法,最后想着是通过获取文件内容时先过滤掉当前域名的记录,也就是只读取不包含该域名host记录的行,最后再追加就可以了。

来源:Heck's Blog
地址:https://www.heckjj.com/post/632/
转载时须以链接形式注明作者和原始出处及本声明,否则将追究法律责任,谢谢配合!
阅读(46) | 评论(0) | 引用(0)