当我尝试修改 hosts 文件时,会出现额外的字符和行。例如,这个选择字符串没有取出任何内容,但是这两个文件是不同的:
get-content -Encoding ascii C:\Windows\system32\drivers\etc\hosts |
select-string -Encoding ascii -notmatch "thereisnolinelikethis" |
out-file -Encoding ascii c:\temp\testfile
PS C:\temp> (get-filehash C:\windows\system32\drivers\etc\hosts).hash
C54C246D2941F02083B85CE2774D271BD574F905BABE030CC1BB41A479A9420E
PS C:\temp> (Get-FileHash C:\temp\testfile).hash
AC6A1134C0892AD3C5530E58759A09C73D8E0E818EC867C9203B9B54E4B83566
Get-Content
返回一个数组,将文件分解成数组并将其作为字符串写回时,可能会引入额外的换行符。 - briantist