gci . -recurse -filter *.c| % {
$MyFile = gc -raw -Encoding utf8 $_.Fullname
$MyPath = $_.Fullname
[System.IO.File]::WriteAllLines($MyPath, $MyFile, [System.Text.UTF8Encoding]($False))
}
需要注意的是这里的 -Encoding utf8
这个参数要设置为正确的编码,不然会乱码,除非是带BOM的UTF-8,因为powershell只认BOM的UTF-8,如果不是,就会用ANSI去读,一般是GBK,而如果用set-content
也会得到带BOM的utf-8文件。