以下代码存为test.bat运行,结果生成utf-8无头标编码文件
考虑若完成批量转码,故代码采用ps读写方法中效率最高的[io.file]系列函数
第2行中目标文件(预设D:\txt\*.txt)其路径和文件类型可被修改,多个双引号包裹变量以便其中可含空格
第3行中预设输入编码 inEnc = unicode 其可覆盖 utf-16LE/utf-16BE编码(用于本帖楼主需求);
若 inEnc = default 其可覆盖简中编码(gbk/gb2312)完成简中编码文件转码为utf-8无头标编码文件- @echo off &setlocal
- set "tFiles=D:\txt\*.txt"
- set "inEnc=unicode"
- powershell "$listF=& cmd /c dir/b/s/a-d """%tFiles%"""; foreach ($F in $listF) { $FF=$F+'.new'; $s=[io.file]::readalltext($F,[text.encoding]::%inEnc%);[io.file]::writeAlllines($FF,$s) }"
- endlocal&exit/b
复制代码