Batch file 通过批处理以UTF-8格式保存文本
我仍在为.m3u播放列表文件开发一个转换器,将其从Windows Media Player生成的格式转换为Teamspeak 3插件“Soundboard”接受的格式 主转换器现已完成,我遇到了最后一个问题: 当使用批处理脚本编写新代码时,它会使用Batch file 通过批处理以UTF-8格式保存文本,batch-file,encoding,utf-8,Batch File,Encoding,Utf 8,我仍在为.m3u播放列表文件开发一个转换器,将其从Windows Media Player生成的格式转换为Teamspeak 3插件“Soundboard”接受的格式 主转换器现已完成,我遇到了最后一个问题: 当使用批处理脚本编写新代码时,它会使用echo a-lot-of-text-and-code>>3.txt保存到ANSI编码的文件中,并且插件似乎只能打开UTF-8编码的文件 有没有办法只通过批处理将3.txt的编码从ANSI更改为UTF-8 关于Joe,这需要一些实验,但我成功地调整了编
echo a-lot-of-text-and-code>>3.txt保存到ANSI编码的文件中,并且插件似乎只能打开UTF-8编码的文件
有没有办法只通过批处理将3.txt的编码从ANSI更改为UTF-8
关于Joe,这需要一些实验,但我成功地调整了编码,将文件编码为UTF-8,并使用批处理
@echo关闭
setlocal
::utf8.bat填充输出文件
::将内嵌转换为utf8并另存为输出文件
如果不存在“%~1”转到用法
如果“%~2”==”转到用法
设置“infle=%~f1”
设置“输出文件=%~f2”
::将当前控制台代码页存储到变量
对于/f“tokens=2 delims=:”('chcp')中的%%I do set“\u代码页=%%I”
::暂时将控制台代码页更改为UTF-8
>NUL chcp 65001
::设置输出文件的字节顺序标记
>“%outfile%”设置/p“=i»”>“%outfile%”类型“%infle%”
::将控制台还原到原始代码页
>NUL chcp%\u代码页%
后藤:EOF
:用法
回显用法:%~nx0填充输出文件
不过,这个脚本本身需要以ANSI编码保存。工作得非常好!一个问题:为什么脚本必须是ANSI本身?我是说,有什么明显的原因我看不出来吗?但是已经谢谢你了!Windows将BOM表视为错误命令并进行投诉。第一行的任何指令都会失败。不过,如果将脚本保存为utf-8而不包含BOM,则该脚本可能会工作。不确定。请随意试验。还有一个问题:“setlocal”在没有任何进一步命令的情况下做什么?我只知道“setLocalEnableDelayedExpansion”命令可以处理for循环中的变量。这样做是相同的还是有其他意义?setlocal
将脚本中定义的任何变量的范围限制为脚本本身。当脚本退出时(或遇到endlocal
时),调用setlocal
后设置的变量将被遗忘。看看为什么这被认为是良好的做法。谢谢你,我会尝试去适应它的进一步脚本!