2009-07-21 3 views
1

나는 다음과 같은 윈도우 배치 명령이 더 큰 배치 파일의 일부로 :이 데이터베이스 구축 과정에서 수행 될 수 있도록 당신이 일에 특정 디렉토리에있는 모든 SQL 스크립트를 조인 볼 수 있듯이Windows 배치 스크립트에서 리디렉션 파일의 파일 인코딩을 변경하려면 어떻게해야합니까?

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

.

내 문제는 이제 SQL 스크립트 파일 중 하나에 ANSI가 아닌 문자가 있지만 dbScript.txt (및 이후의 dbScript.sql)가 ANSI로 인코딩된다는 것입니다.

어떻게 출력 파일의 인코딩을 UTF-8로 변경할 수 있습니까?

답변

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를 사용하여 연결합니다.

+0

'copy! LIST! dbScript.sql' – akf

+0

필요하지 않습니다. 이 경우 즉각적인 확장이 아프지 않는 지점에 있습니다. 그러나 그렇습니다, 그것은 잘 작동 할 것입니다. 'for' 루프의'set' 명령은! LIST!를 사용하면됩니다. 우리는 거기에서 지연된 확장이 필요하기 때문입니다. – Joey

2

copy을 사용해 보셨습니까?

copy *.sql dbscript.sql 
관련 문제