使用快捷方式一键修改 hosts 文件。
下面请看 VCR:

其实关键的命令只有一条:
powershell.exe -Command "Start-Process -FilePath notepad.exe -Verb RunAs -ArgumentList "$env:SystemRoot\system32\drivers\etc\hosts""
它使用记事本以管理员权限打开位于 C:\Windows\System32\drivers\etc\hosts 目录下的 hosts 文件,以便如果需要的话,可以编辑该文件。
Let's break it down:
powershell.exe: 这会调用 PowerShell 可执行文件,用于在命令行中执行 PowerShell 命令。
-Command: 该参数告诉 PowerShell 执行接下来的命令。
"Start-Process": 该 cmdlet 用于启动一个新进程(在这个例子中是一个应用程序,也就是记事本)。
-FilePath notepad.exe: 这指定了要启动的程序(记事本),notepad.exe 路径告诉 PowerShell 打开记事本。
-Verb RunAs: 这一部分指示 PowerShell 以提升的权限(管理员权限)运行该进程,这是修改系统文件(如 hosts 文件)所必需的。
-ArgumentList: 这指定了要传递给启动程序的参数(在本例中是记事本)。该参数是 hosts 文件的路径。
$env:SystemRoot\system32\drivers\etc\hosts: 这一部分通过 $env:SystemRoot 环境变量获取系统根目录(通常是 C:\Windows ),然后构建 hosts 文件的路径( C:\Windows\System32\drivers\etc\hosts )。
转义的双引号(\"):这些用于正确处理命令中的空格或特殊字符。此处用于围绕 $env:SystemRoot 变量,以正确地包含路径。
你也可以直接去下面网站下载已经生成的快捷方式。
|  |      1qW7bo2FbzbC0      247 天前 牛批 | 
|      2bbao      247 天前  6 看了这么一大堆文字,觉得,还是直接打开 host 文件修改比较快~~~~ | 
|      3julyclyde      247 天前  65 在低频需求上瞎优化 | 
|  |      4Zhuzhuchenyan      247 天前  9 我用 Power Toys 的 Hosts File Editor utility ,感觉也挺便捷的 https://learn.microsoft.com/en-us/windows/powertoys/hosts-file-editor | 
|  |      5bzw875      247 天前 | 
|  |      6ShadowPower      247 天前  2 我用 SwitchHosts…… | 
|      7layxy      247 天前 当有很多 host 需要管理的时候还是 SwitchHosts 比较方便,否则手动编辑其实也还好 | 
|      8Alliot      247 天前  11 冷知识:  Win+R 打开运行,输入 drivers 回车,就能快速定位到 hosts 文件路径,双击就可以打开啦。 | 
|      9zictos      247 天前  1 随便建立一个快捷方式就可以了啊,路径: %windir%\system32\notepad.exe %windir%\system32\drivers\etc\hosts | 
|  |      10Belmode      247 天前  3 | 
|      11xqzr      247 天前  1 Win+R 或 创建快捷方式 sudo notepad drivers\etc\hosts | 
|      12yidev      247 天前  11 我要是发送一个 hosts 快捷方式到桌面, 阁下又该如何应对? | 
|  |      13Mark24      247 天前 sudo vim /etc/hosts | 
|  |      14chendy      247 天前 我的方法: 1. 用 vscode 打开,保存的时候会提示要管理员权限,然后确认就行了 2. 用 Power toy 里的 hosts 工具 | 
|      15asdasdqqq      247 天前 switchhosts | 
|  |      16opengps      247 天前 我的 notapad++里常年吧 hosts 设置为第一个打开的文件 | 
|      18henix      247 天前 有意思,但怎么没显示需要管理员权限的提示? | 
|      19linuxsir2020      247 天前 @opengps  +1 | 
|  |      20HankAviator      247 天前 没事 经常 手动 用记事本 改 hosts 玩 | 
|      21PrinceofInj      247 天前 这个主要是第一次修改需要改文件权限。楼上这么多直接编辑的,想必第一次也得改一下文件权限才行吧。 | 
|  |      22wangtian2020      246 天前 powertoys | 
|  |      23ZxykM      246 天前 只用 SwitchHosts | 
|      24shujuliuer OP @zictos 会有编辑权限问题 | 
|      25shujuliuer OP @henix 关键的点就在这里,无须管理员权限的提示 | 
|  |      26body007      246 天前 | 
|      27zictos      246 天前 @shujuliuer #24 我今天真的遇到了编辑权限的问题,以前明明好好的,今天突然不能直接修改了,通过管理员权限运行 cmd 并通过 notepad.exe 打开 hosts 文件才能编辑。我一直用 administrator 账户登录的,以前能直接手动修改也能使用 python 自动修改。 不过权限问题解决了,用管理员权限运行 cmd ,然后执行下面两行命令之后就能随意编辑 hosts 文件了。 takeown /f C:\Windows\System32\drivers\etc\hosts icacls C:\Windows\System32\drivers\etc\hosts /grant Administrators:F | 
|  |      28peasant      246 天前 我选择本地跑 AdGuardHome | 
|  |      29fox2081      246 天前 Power Toys 了解一哈 | 
|      30raymonguo      246 天前 code C:\Windows\System32\drivers\etc\hosts | 
|  |      31leee41      246 天前 C:\Windows\System32\drivers\etc\hosts 我直接快速访问固定该文件 | 
|      32lscho      246 天前 这就是我为什么开发环境不用 windows 的原因。。。。 | 
|      33FarmerChillax      246 天前 不如考虑一下这个: https://github.com/oldj/SwitchHosts 还带了环境管理 | 
|  |      35LitterGopher      246 天前 直接給 HOST 文件創建一個軟鏈接到你常用的目錄或桌面唄. | 
|  |      36LitterGopher      246 天前 @lscho #32 虽然我自己使用 Linux 开发, 但是就我所遇到的和过的公司和部门几乎也只有我是在纯 Linux 上开发,就算嵌入式不少也都是在 Windows 上开发, Linux 上调试, 即便在 Linux  上开发的也是在 Windows 装虚拟机进行开发, 而不是裸跑 Linux 进行开发. 你说 macOS? 那你一定不是做开发的. | 
|      37lscho      246 天前 | 
|  |      38LitterGopher      246 天前 @lscho #37 好像确实是我应激了, 抱歉, 抱歉. | 
|      39qingshengwen      246 天前 @yidev #12 哈哈哈哈,我就是这么做的 | 
|      40dode      246 天前 使用 vscode 编辑器打开,保存时自动提升使用管理员权限强制保存 | 
|      41sinry      246 天前 你这太慢了,不如 utools ,1 秒打开 | 
|      42FishBear      246 天前  1 @Zhuzhuchenyan #4 确实 直接按 alt+空格后 输入 host 就可以编辑了 | 
|      43happyxhw101      246 天前 F2(打开 guake 终端) -> sudo vim /etc/hosts | 
|  |      44Vegetable      246 天前 不是,快捷方式不能用吗? | 
|      45strobber16      246 天前 不是,本站用户人手一个软路由谁 TM 还改本机 hosts 啊 | 
|  |      46bhqt      246 天前 hostsx | 
|  |      47vmebeh      246 天前 via iPhone 能直接编辑的都是关了 UAC 的,打开任何程序都是有管理员权限,相当于 sudo 任何程序 | 
|  |      48psxf      246 天前 ...用 Listary 搜索 host 直接编辑 | 
|  |      49ShadowPower      246 天前 @strobber16 公司有一堆环境,微服务改配置里的注册中心和中间件的 IP 地址要花点时间。用域名,直接改 hosts ,然后全部重启就搞定了 | 
|  |      50Fdyo      246 天前 | 
|  |      51ShadowPower      246 天前 @lscho 我想知道为什么这是你不用 Windows 的原因…… 难道这玩意还影响开发吗? | 
|  |      52killva4624      246 天前 alias vimhosts='vim /etc/hosts' | 
|  |      53crac      246 天前 其实翻墙软件里带这个功能的 直接写配置文件里就行。。。 | 
|      54jadeborner      246 天前  1 powertoys 里面不有吗 | 
|  |      55yulgang      246 天前 | 
|  |      56minami      246 天前 @lscho #37 能说到应激更是个神人,请问哪个系统不用工具改 hosts 不是进去手动改文件?跟 Windows 有什么关系? hosts 是给普通用户改着玩的吗 | 
|  |      57woodfizky      246 天前 如果用火绒,火绒就有这个类似的工具,帮你解决编辑权限问题。 在用这个之前,我的做法是复制一个 hosts ,用记事本打开,编辑完之后同名扔回去覆盖。 | 
|      58dmanbu      246 天前 我之所有不喜欢 powershell ,就是因为这玩意又臭又长 | 
|  |      59lambdaq      246 天前 | 
|  |      60zhizunzz      246 天前 请问你们每天都改几十遍 host 吗 | 
|      61lscho      246 天前 @minami 能说神人的就更神人了。。我一直在说的是“我”,不知道你在应激什么,我就不想手动点四五层目录进去找 host 文件怎么了?也不想使用 powershell ,我就喜欢直接 vim /etc/host 修改怎么了?甚至我可以说不想使用 windows 的文件管理器,因为我用着有点卡,这怎么了?和你有什么关系吗?真的搞笑。。。 | 
|      62alading11      246 天前 @Zhuzhuchenyan nb ,一直在用 Power Toys 但是搜索这个功能还真不咋用,批量修改文件名啥的还是挺好用的 | 
|      63lscho      246 天前 @ShadowPower 你看下 op 列出来改 host 使用的东西,并不是简单的改 host 的问题,而是因为这个问题衍生出来的 powershell 语法、权限设计、甚至文本编辑器带来的换行符问题。我是做后端开发的,代码要放到服务器运行的,在 windows 上开发 linux 运行的话,经常会有奇奇怪怪的小问题,真的会影响到我。 但是以上仅仅代表 [我] 个人感觉。 | 
|  |      64zenghx      246 天前 gsudo/sudo 就好了 | 
|      65hefish      246 天前 全球最快,史上最快,国内首创,天下无敌。。。 | 
|  |      67mobaijun      246 天前 | 
|  |      68mobaijun      246 天前 <img alt="tu" src="https://imgur.com/a/9MEefEw"> 没有这种方式嘛 | 
|  |      69ShadowPower      246 天前 @lscho  op 写得太复杂了,其实非常简单,用 Powershell 以管理员权限运行程序是这样写: Start-Process 程序名 参数 -Verb RunAs 程序名只需要填上:notepad 参数填上 hosts 文件路径:'C:\Windows\System32\drivers\etc\hosts' 我觉得还挺直观的。虽然没有 unix 命令那种一两个字母看起来短,不过实际上在脚本里可读性非常强。 然后用 Powershell 来运行它,只需要这样: powershell -Command "这里是要执行的命令" 有缩略写法: pwsh -c "这里是要执行的命令" 把这个添加到快捷方式里,就可以实现双击执行某条命令了。 对比苹果的设计,AppleScript 是这么写的: do shell script "open -a 'TextEdit' /etc/hosts" with administrator privileges 整体上甚至差不多,格式都很像。如果追求“双击就能运行”,那么这就是最简单的方法了。 除非配了免密码,不然用 sudo 的方式需要输入密码。 | 
|  |      72xiaomoxian      246 天前 via Android @yidev 我是让 host 文件的快捷方式散布在每一个文件夹下,随时都能打开 | 
|  |      73davin      246 天前 以前流行 SwitchHosts 的时候,为了方便切换开发环境的 host 配置,经常设置 SwitchHosts 开机自动启动,随用随改。 | 
|  |      74magicls      246 天前 蛤? | 
|  |      75mmdsun      246 天前  1 微软新出了个 sudo 安装下就很方便了 | 
|      76czz404      246 天前 listary 直接键入 host 也可以 | 
|      77meteora0tkvo      245 天前  | 
|  |      79guanzhangzhang      245 天前 大佬,我想写个修改 ip 的,powershell 用 New-NetIPAddress -InterfaceAlias 保存为.ps1 后无法运行,调整 powershell 运行策略后点击要是弹权限 | 
|      81RYAN10041      245 天前  康康我的 | 
|      82shujuliuer OP @Alliot 双击打开后,保存时候没有权限…… | 
|      83shujuliuer OP @xqzr notepad drivers\etc\hosts 可以直接打开文件,但是一样没有保存权限 | 
|      84xqzr      238 天前 @shujuliuer sudo |