目录
■效果改善(修改后的文件,按照原来的目录结构,保存到另外一个文件夹中)
■前言
今天统计修改代码量,使用工具时,发现有些代码无法统计。
原因时UTF-8中有某些特殊字符,工具不能识别。
但是,如果把代码转换为SJIS格式,就能正常统计了。
因此,要找到一个方法,批量修改文件的编码。
■PowerShell命令
ls -Recurse -file | ForEach-Object {Get-Content $_.FullName -Encoding UTF8 | Set-Content ($_.FullName+"SJIS.java") -Encoding Default}
红色标记的部分,之后的改善代码中,不再使用
ls -Recurse -file | ForEach-Object {Get-Content $_.FullName -Encoding UTF8 | Set-Content ($_.FullName+"SJIS.java") -Encoding Default}
说明1:单个文件转换
default 代表本地默认字符
中文系统:转换为GBK
日文系统:转换为SJIS
=====================================
说明2:$_
在ForEach-Object
中,我们使用$_
来引用正在处理的文件对象,然后使用$_.FullName
来获取文件的【路径和名称】
=================================
说明3:($_.FullName+"SJIS.java")
【拼接】输出的结果
■效果
子目录(红色框)下面的文件也会跟着变化
==
■效果改善(修改后的文件,按照原来的目录结构,保存到另外一个文件夹中)
Step1.把要转换的对象放入下面标记【1】标记的文件夹中。目录含 名字UTF8
Step2.复制生成下面标记【2】的文件夹
Step3.使用命令
del /a /f /s /q .\
删除标记【2】的文件夹中的所有文件
====最终达到下面的效果
===
step4.执行下面命令,开始进行文件编码的转换
ls -Recurse -file | ForEach-Object {Get-Content $_.FullName -Encoding UTF8 | Set-Content ($_.FullName).replace("UTF8","GBK") -Encoding Default}
===运行代码
达到如下效果,
===