我有以下windows batch命令作为更大批处理文件的一部分:
type *.sql > dbScript.txt
ren dbScript.txt dbScript.sql
正如您所看到的,它将特定目录中的所有SQL脚本连接成一个,以便在数据库构建过程中执行它。
我的问题是我现在在其中一个SQL脚本文件中有非ANSI字符,但dbScript.txt(以及随后的dbScript.sql)被编码为ANSI。
如何将输出文件的编码更改为UTF-8?
答案 0 :(得分:3)
您必须运行iconv
之类的程序来转换输出文件。 cmd
仅支持OEM代码页(默认情况下)或UTF-16(/u
参数cmd
)作为输出编码。
或者,如果由于您type
文件并重定向输出而引入了编码问题,您还可以尝试类似下面的内容,它应保留编码(因为它不会输出然后写入再次发短信):
setlocal enableextensions enabledelayedexpansion
set LIST=NUL
for %%f in (*.sql) do set LIST=!LIST!+%%f
copy %LIST% dbScript.sql
endlocal
这将首先生成一个加号分隔的SQL文件列表,然后使用copy来连接它们。
答案 1 :(得分:2)
您是否尝试过使用copy
?
copy *.sql dbscript.sql