我有以下的Windows批处理命令作为更大的batch file的一部分:
type *.sql > dbScript.txt ren dbScript.txt dbScript.sql
正如您所看到的,它将特定目录中的所有SQL脚本合并为一个,以便在数据库构build过程中执行该脚本。
我的问题是,我现在有一个SQL脚本文件中的非ANSI字符,但是dbScript.txt(和随后的dbScript.sql)被编码为ANSI。
如何将输出文件的编码更改为UTF-8?
你必须像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
?
copy *.sql dbscript.sql