欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

dos bat 替换 hosts 文件 更新 hosts deepseek AG chatgpt 有大用 有大大用

用 bat 脚本   先清空  windows 的 hosts 文件 再 192.168.2.2    aaaaa.com.cn 192.168.2.3    aaaaa.com.cn   内容追加到   windows 的 hosts 文件


以下是一个实现所需功能的批处理脚本:

batch                
复制
下载
@echo off
:: 请求管理员权限
fltmc >nul 2>&1 || (
    echo 正在请求管理员权限...
    start "" /wait PowerShell -Command "Start-Process '%~0' -Verb RunAs"
    exit /b
)

:: 清空hosts文件
type nul > "%SystemRoot%\System32\drivers\etc\hosts"

:: 追加新内容
(
echo 192.168.2.2    aaaaa.com.cn
echo 192.168.2.3    aaaaa.com.cn
) >> "%SystemRoot%\System32\drivers\etc\hosts"

echo 操作已完成!hosts文件已更新。
pause

使用说明:

  1. 保存文件:将上述代码复制到记事本中,保存为.bat文件(例如update_hosts.bat

  2. 运行脚本

  • 直接双击运行时会自动请求管理员权限

  • 若出现UAC提示,请点击"是"确认授权

  • 执行效果

    • 自动清空现有hosts文件内容

    • 添加以下两条记录:

                                 
      复制
      下载
      192.168.2.2    aaaaa.com.cn
      192.168.2.3    aaaaa.com.cn
                 

    注意事项:

    1. 脚本会完全清空原有hosts文件,如有需要请提前备份

    2. 必须使用管理员权限才能修改hosts文件

    3. 执行完成后按任意键关闭窗口

    4. 若遇杀毒软件拦截,请暂时禁用或添加信任

    该脚本使用fltmc命令检测管理员权限,比传统方法更简洁可靠。通过type nul命令彻底清空文件,并使用代码块批量写入新内容,确保格式正确。


    用 bat 脚本   先清空  windows 的 hosts 文件 再 192.168.2.2    aaaaa.com.cn 192.168.2.3    aaaaa.com.cn   内容追加到   windows 的 hosts 文件


    如果你想先清空 hosts 文件,然后再添加新的条目,可以修改批处理脚本如下:

    1. 创建批处理脚本

    创建一个新的文本文件,并将其命名为 update_hosts.bat。然后,将以下内容复制到该文件中:

    bat

    @echo off :: 以管理员身份运行脚本 :: 检查是否以管理员身份运行 net session >nul 2>&1 if %errorLevel% == 0 (    echo 正在以管理员身份运行... ) else (    echo 请以管理员身份运行此脚本。    pause    exit /b ) :: 备份现有的 hosts 文件 copy /y %SystemRoot%\System32\drivers\etc\hosts %SystemRoot%\System32\drivers\etc\hosts.bak >nul :: 清空 hosts 文件 echo. > %SystemRoot%\System32\drivers\etc\hosts :: 添加新的条目 echo 192.168.2.2    aaaaa.com.cn >> %SystemRoot%\System32\drivers\etc\hosts echo 192.168.2.3    aaaaa.com.cn >> %SystemRoot%\System32\drivers\etc\hosts echo hosts 文件已清空并更新完成。 pause                
               

    2. 运行脚本

    1. 右键点击 update_hosts.bat 文件,然后选择“以管理员身份运行”。

    2. 脚本会自动检查是否以管理员身份运行,如果不是,会提示你以管理员身份运行。

    3. 脚本会备份现有的 hosts 文件,清空 hosts 文件,然后添加指定的 IP 地址和域名。

    3. 验证

    打开 C:\Windows\System32\drivers\etc\hosts 文件,查看内容是否如下:

    192.168.2.2    aaaaa.com.cn
    192.168.2.3    aaaaa.com.cn
    
               

    脚本说明

    • 备份:脚本会备份现有的 hosts 文件为 hosts.bak,以防止意外覆盖。

    • 清空:使用 echo. > 命令清空 hosts 文件。

    • 添加条目:使用 echo 命令将新的条目追加到 hosts 文件中。

    • 管理员权限:修改 hosts 文件需要管理员权限,因此脚本会检查是否以管理员身份运行。

    通过这种方式,你可以确保 hosts 文件被清空,并只包含你指定的条目。

    net session >nul 2>&1 详解            


               


               

    net session >nul 2>&1 是一个常见的命令行操作,用于检查当前是否以管理员身份运行脚本。下面是对这条命令的详细解释:


    1. net session            

    • net session 是一个 Windows 命令,用于列出当前与计算机建立会话的用户。

    • 只有管理员权限的用户才能成功执行 net session 命令。如果当前用户不是管理员,执行该命令会返回错误。


    2. >nul            

    • > 是重定向符号,用于将命令的输出重定向到指定位置。

    • nul 是 Windows 中的空设备文件,类似于 Linux 中的 /dev/null。将输出重定向到 nul 会丢弃命令的输出,不在屏幕上显示任何信息。

    • 因此,>nul 表示将 net session 的输出丢弃,不显示在屏幕上。


    3. 2>&1            

    • 2> 是错误输出重定向符号,2 表示标准错误流(stderr)。

    • &1 表示将错误输出重定向到标准输出流(stdout)的当前位置。

    • 结合 >nul2>&1 表示将标准错误流也重定向到 nul,即丢弃错误信息。

    • 因此,无论 net session 成功还是失败,都不会在屏幕上显示任何信息。


    4. 整体作用            

    net session >nul 2>&1 的作用是:

    • 尝试执行 net session 命令。

    • 如果当前用户是管理员,命令会成功执行,但输出被丢弃。

    • 如果当前用户不是管理员,命令会失败,但错误信息也被丢弃。

    • 通过检查命令的返回值(%errorLevel%),可以判断是否以管理员身份运行。


    5. 结合 if 语句            

    通常,net session >nul 2>&1 会与 if 语句结合使用,例如:

    bat

    net session >nul 2>&1 if %errorLevel% == 0 (    echo 正在以管理员身份运行... ) else (    echo 请以管理员身份运行此脚本。    pause    exit /b )                
               
    • 如果 net session 成功执行(%errorLevel% 为 0),说明当前用户是管理员。

    • 如果 net session 失败(%errorLevel% 非 0),说明当前用户不是管理员,脚本会提示用户以管理员身份运行。


    6. 为什么使用 net session            

    • net session 是一个简单且可靠的方法来检查管理员权限,因为它需要管理员权限才能执行。

    • 相比于其他方法(如检查用户组),net session 更加通用且兼容性更好。


    7. 总结            

    net session >nul 2>&1 是一种高效的方式,用于在批处理脚本中检查当前是否以管理员身份运行。它通过尝试执行需要管理员权限的命令,并根据返回值判断权限状态,同时避免在屏幕上显示无关信息。


    普通分类: