【问题标题】:Removing websites from hosts file with batch file使用批处理文件从主机文件中删除网站
【发布时间】:2016-11-01 00:52:38
【问题描述】:

想要确保此代码会从 hosts 文件中删除特定网站,解除对它的阻止。

pushd %SystemRoot%\system32\drivers\etc\hosts
copy hosts hosts.bak
findstr /v /c:"drive.google.com" hosts.bak > hosts
popd

如果不是,那么我可以在批处理文件中使用什么来从主机文件中删除特定网站。

【问题讨论】:

  • ...当你尝试它时发生了什么?
  • findstr /v /c:"drive.google.com" %SystemRoot%\system32\drivers\etc\hosts > %SystemRoot%\system32\d rivers\etc\hosts 就是您所需要的。 4 行合为一行。
  • 我还没有尝试过,因为我对此还是很陌生,不想只使用我不确定的命令。但是谢谢我会尝试的:)

标签: batch-file hosts-file


【解决方案1】:

如果对可能删除某些内容有疑问,则以下代码(在批处理文件中使用 powershell)将注释掉任何匹配的行。 (根据需要编辑 SiteList).

@Echo Off
Set SiteList="drive.google.com" "microsoft.com" "dostips.com" "stackoverflow.com"
For %%A In (%Sitelist%) Do Call :Sub %%A
Exit/B
:Sub
@Powershell "(Get-Content """$($env:windir)\System32\drivers\etc\hosts""") -replace ('^\s*127.0.0.1\s*%~1','#127.0.0.1 %~1') | Out-File """$($env:windir)\System32\drivers\etc\hosts"""  -Force"

因为 hosts 文件位于系统的受保护区域,您需要以管理员身份运行。

该方法与 Hackoo 在 cmets 部分中友情提供的链接中使用的方法相同,但由于您的批处理文件标签和您所说的缺乏知识,我提供了此作为替代方法。

另外值得注意的是,有些主机使用的是 0.0.0.0 而不是 127.0.0.1,所以你可能需要相应地调整代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-11
    • 2018-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-02
    • 1970-01-01
    相关资源
    最近更新 更多