我将以下 Windows 批处理命令作为较大批处理文件的一部分:
type *.sql > dbScript.txt
ren dbScript.txt dbScript.sql
如您所见,它将特定目录中的所有 SQL 脚本合并为一个,以便它可以在数据库构建过程中执行。
我的问题是我现在在一个 SQL 脚本文件中有非 ANSI 字符,但 dbScript.txt(以及随后的 dbScript.sql)被编码为 ANSI。
如何将输出文件的编码更改为 UTF-8?
最佳答案
你必须运行类似 iconv
的程序转换您的输出文件。 cmd
仅支持 OEM 代码页(默认情况下)或 UTF-16(使用 cmd
的 /u
参数)作为输出编码。
或者,如果由于您正在键入
文件并重定向输出而引入编码问题,您也可以尝试类似下面的方法,它应该保留编码(因为它不输出然后再写一遍):
setlocal enableextensions enabledelayedexpansion
set LIST=NUL
for %%f in (*.sql) do set LIST=!LIST!+%%f
copy %LIST% dbScript.sql
endlocal
这将首先生成一个以加号分隔的 SQL 文件列表,然后使用复制来连接它们。
关于windows - 如何在 Windows 批处理脚本中更改重定向文件的文件编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1161211/