OSQL Неверный синтаксис - Кодировка символов - Требуется помощь сценариев Powershell

Поэтому мы используем osql для запуска в хранимых процедурах как часть нашего процесса сборки. Мы используем проект с папкой sp, которая публикуется вместе с приложениями как часть пакета сборки.

Я использовал Visual Studio для создания этой структуры проекта и создал сценарии sql для запуска в процессах.

Visual Studio сохранила файлы в формате UTF8 (по умолчанию). osql при запуске в скриптах жаловался на то, что у каждого скрипта была ошибка синтаксиса в строке 1, т.е.

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

Скорее сбивает с толку.

Тем не мение; Чтобы решить эту проблему, сценарии sql можно сохранить с помощью кодовой страницы Unicode 1200 (Файл -> Дополнительные параметры сохранения).

эт вуаля - проблема ушла

Теперь это оставило меня с еще большей проблемой; У меня есть более 200 сценариев proc, которые мне нужно открыть, изменить кодировку и сохранить с новой кодировкой.

Может ли какой-нибудь гуру PowerShell составить мне быстрый скрипт, чтобы изменить кодировку каждого файла в папке на кодовую страницу Unicode 1200? Будет делать мне одолжение, а также экономить время.

1 ответ

В конце концов я использовал подход, описанный здесь

Сохраните все файлы в проекте Visual Studio как UTF-8

Но вместо UTF8; Я указал Unicode.

foreach (var f in new DirectoryInfo(@"...").GetFiles("*.sql", SearchOption.AllDirectories)) {
  string s = File.ReadAllText(f.FullName);
  File.WriteAllText (f.FullName, s, Encoding.Unicode);
}
Другие вопросы по тегам