Как изменить кодировку файла для файла перенаправления в пакетном скрипте Windows? - PullRequest
1 голос
/ 21 июля 2009

У меня есть следующая командная команда Windows как часть большего командного файла:

type *.sql > dbScript.txt
ren dbScript.txt dbScript.sql

Как видите, он объединяет все сценарии SQL в определенном каталоге в один, чтобы его можно было выполнить в процессе построения базы данных.

Моя проблема заключается в том, что в одном из файлов сценариев SQL теперь нет символов ANSI, но dbScript.txt (и впоследствии dbScript.sql) кодируются как ANSI.

Как я могу изменить кодировку выходного файла на UTF-8?

Ответы [ 2 ]

3 голосов
/ 22 июля 2009

Вы должны запустить программу типа 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-файлов, разделенных плюсом, а затем будет использоваться копия для их объединения.

2 голосов
/ 15 сентября 2011

Вы пробовали просто использовать copy?

copy *.sql dbscript.sql
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...