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);
}