该脚本依赖git bash的 iconv 命令,请确保安装了git。
脚本会处理当前路径下和子目录中的所有 .c, .h文件,请自行根据使用情况修改。遇到某些字符会提示Failed to replace...,但请以实际转换结果为准,鼠标点击输出框会暂停,按"Enter"继续。
请复制后保存为.bat文件使用,如果有用就点个赞吧!
如果提示找不到bash命令,说明没有将git的命令添加到环境变量中,请将git安装目录中的bin文件夹路径(示例:"c:\Program Files\Git\bin")添加到系统环境变量中。"此电脑——属性——高级——环境变量——系统变量——Path——编辑——新建——将bin路径粘贴并确认"
@echo off
:: 使用当前路径作为工程目录,点击窗口暂停,按"Enter"继续
set "project_dir=%cd%"
:: 将路径转换为 Unix 格式
set "unix_project_dir=%project_dir:\=/%"
:: 遍历当前目录及其子目录中的所有 .c 和 .h 文件
for /r "%project_dir%" %%f in (*.c *.h) do (
echo Converting file: %%f
:: 使用 iconv 将文件从 GB2312 转换为 UTF-8
bash -c "iconv -f GB2312 -t UTF-8 '%%f' > '%%f.tmp'"
if errorlevel 1 (
echo Failed to convert %%f
:: 如果转换失败,删除临时文件
del "%%f.tmp" 2>nul
) else (
:: 如果转换成功,用临时文件覆盖原文件
move /y "%%f.tmp" "%%f" >nul
if errorlevel 1 (
echo Failed to replace %%f with converted file.
:: 如果替换失败,删除临时文件
del "%%f.tmp" 2>nul
)
)
)
echo Conversion completed.
pause