【发布时间】:2019-06-23 14:24:09
【问题描述】:
我正在尝试使用 powershell 在 Windows 主机文件中添加或删除特定条目,但是当我这样做时,它会工作一段时间,然后会再次被编辑(当 Windows 读取它时,我猜) ,并且它变得损坏(显示中文字符)。
我已经尝试使用我找到的部分代码 here。 它允许我正确编辑文件并且条目是有效的,直到它被损坏。
我这样做是为了添加条目:
If ((Get-Content "$($env:windir)\system32\Drivers\etc\hosts" ) -notcontains "111.111.111.111 example.com")
{ac -Encoding UTF8 "$($env:windir)\system32\Drivers\etc\hosts" "111.111.111.111 example.com" }
Here 是文件损坏后的样子:
感谢您的帮助。
已解决:
删除-Encoding UTF8
【问题讨论】:
-
为什么要更改文件追加的编码?
-
该文件通常是 ASCII。与 AdminOfThings 一样,我很好奇您为什么要更改编码...
-
老实说,我从上面的示例中复制了它,我会尝试将其删除,还是应该指定其他编码?
-
*-Contentcmdlet 默认为 ASCII 编码,因此只需删除参数即可。 -
@AnsgarWiechers *-content 默认以 ANSI 编码,可以处理重音等内容。
标签: windows powershell hosts