回显到Windows PowerShell中的hosts文件会在字符之间创建空格

时间:2014-09-04 18:52:20

标签: windows powershell echo

在管理员模式下运行以下命令Windows 8.1上的PowerShell会创建奇怪的输出:

PS C:\> cat C:\Windows\System32\drivers\etc\hosts
# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#

以上是hosts文件的初始内容。

PS C:\> echo "127.0.0.1 example.com" >> C:\Windows\System32\drivers\etc\hosts

我使用echo命令和...添加一行

PS C:\> cat C:\Windows\System32\drivers\etc\hosts
# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
1 2 7 . 0 . 0 . 1   e x a m p l e . c o m     

PS C:\>

注意最后一行;它在每个被回应的角色之间都有空格。

知道为什么会这样吗?

2 个答案:

答案 0 :(得分:3)

似乎显而易见的解决方案是不使用echo "text" >> file格式。请尝试使用添加内容:

Add-Content -Path C:\windows\System32\drivers\etc\hosts. -Value "127.0.0.1 example.com"

这将为您提供所需的输出。

答案 1 :(得分:2)

我认为问题是PowerShell默认使用Unicode。

这将实现您的目标:

ECHO "127.0.0.1 example.com" | Out-File -Append -Encoding ASCII MyFile.txt