2013-04-29 1 views
0

그래서 osql을 사용하여 빌드 프로세스의 일부로 저장 프로 시저에서 실행합니다. 빌드 팩의 일부로 응용 프로그램과 함께 게시되는 sp 폴더가있는 프로젝트를 사용합니다.잘못된 구문 - 문자 인코딩 - Powershell 스크립팅 도움 필요

Visual Studio를 사용하여이 프로젝트 구조를 만들고 procs에서 실행할 SQL 스크립트를 만들었습니다.

Visual Studio에서 파일을 UTF8 형식으로 저장했습니다 (기본적으로). 스크립트에서 실행 중일 때 osql은 구문 오류가있는 모든 스크립트에 대해 1 행에 대해 불만을 표시했습니다. 즉

> Incorrect syntax near '´'.  1> 2> Msg 102, Level 15, State 1, 
> Server GBEPIAP-SQL01, Line 1 

오해의 여지가 있습니다.

어쨌든; 문제를 해결하려면 SQL 스크립트가 유니 코드 코드 페이지 1200로 저장 될 수 있습니다 (파일 -> 고급 저장 옵션)

짜잔

등 - 문제는 이제

사라 즉 더 큰 문제를 나에게 남아; 200 개 이상의 proc 스크립트를 열어 인코딩을 변경하고 새로운 인코딩으로 저장해야합니다.

모든 powershell 전문가가 폴더의 모든 파일 인코딩을 유니 코드 코드 페이지 1200으로 변경하는 빠른 스크립트를 작성할 수 있습니까? 시간을 절약하는 동시에 나에게 호의를 베풀 것입니다. 결국

+1

OSQL 정말 정말 오래된 - 당신은 훨씬 더 최근 인 대신'sqlcmd'를 사용하려고해야하고 더 나은 –

+0

유효한 충분한 의견을 인코딩을 처리 할 수 ​​있습니다. 빌드 팀에 제안을 할 수는 있지만 그건 내 임무를 벗어납니다. –

답변

1

나는 접근은하지만 그 대신 UTF8의 여기

Save all files in Visual Studio project as UTF-8

을 문서화 사용; 유니 코드를 지정했습니다.

foreach (var f in new DirectoryInfo(@"...").GetFiles("*.sql", SearchOption.AllDirectories)) { 
    string s = File.ReadAllText(f.FullName); 
    File.WriteAllText (f.FullName, s, Encoding.Unicode); 
} 
+0

내 스크립트에 메모장 ++을 사용하고 BOM없이 ANSII 또는 UTF 8로 인코딩을 선택하면 나를 위해 일했습니다. – user2983931