Командная строка TotalCmd vs bat&cmd :)
От: Аноним  
Дата: 29.01.05 09:53
Оценка:
Не знал куда закинуть, т.к. вопрос достаточно общий, решил к C++ т.к. думаю тут больше грамотного народу .

Проблема следующая :

Cscript WiRunSQL.vbs setup.msi "UPDATE `Control` SET `Control`.`Text`='{\VSI_MS_Sans_Serif13.0_0_0}Отмена' WHERE `Control`.`Text`='{\VSI_MS_Sans_Serif13.0_0_0}Cancel'"


Т.е. данная коммандная строка изменяет поле в БД со значением Cancel на русский — Отмена. Нужна для руссификации БД.
WiRunSQL.vbs — скрипт Visual Basic который собственно выполняет SQL запрос который передается ему как параметр.


Так вот, если данную комманду выполнить из bat(или cmd) файла то кодировка портится и в базу добавляется
кракозябры. Если выполнить из строки Total Commander то все нормально. Видится слово Отмена.
В чем @ порылась ???





07.02.05 22:28: Перенесено модератором из 'C/C++. Прикладные вопросы' — Павел Кузнецов
Re: Командная строка TotalCmd vs bat&cmd :)
От: Adil Россия  
Дата: 01.02.05 11:09
Оценка: +1
Здравствуйте, Аноним, Вы писали:

Ну так понятно — в cmd и bat ты вводишь "отмена" в DOS-кодировке, а в тотал командер — в Windows-кодировке
Удачи.
Re[2]: Командная строка TotalCmd vs bat&cmd :)
От: Аноним  
Дата: 07.02.05 11:45
Оценка:
Здравствуйте, Adil, Вы писали:

A>Здравствуйте, Аноним, Вы писали:


A>Ну так понятно — в cmd и bat ты вводишь "отмена" в DOS-кодировке, а в тотал командер — в Windows-кодировке


Не понял.., когда я смотрю этот файл в Total Commander то он определяет его кодировку как Windows. Или преобразование в DOS кодировку происходит уже непосредственно при исполнении ?
Re: Командная строка TotalCmd vs bat&cmd :)
От: Tonal- Россия www.promsoft.ru
Дата: 13.02.05 16:09
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Проблема следующая :

А>

А>Cscript WiRunSQL.vbs setup.msi "UPDATE `Control` SET `Control`.`Text`='{\VSI_MS_Sans_Serif13.0_0_0}Отмена' WHERE `Control`.`Text`='{\VSI_MS_Sans_Serif13.0_0_0}Cancel'"


А>Так вот, если данную комманду выполнить из bat(или cmd) файла то кодировка портится и в базу добавляется кракозябры. Если выполнить из строки Total Commander то все нормально. Видится слово Отмена.

А>В чем @ порылась ???
В кодировке текста.
Судя по всему когда ты запускаешь из Total Commander-а сscript решает что текст в кодировке cp1251, а когда из cmd, то в cp866.
Понятно, что в одном из случаев будут "кракозябры".

Надо или перекодировать текст в cp866, либо попробывать вместо сscript-а wscript.

P.S. Думаю эту ветку лучше в "Средства разработки" перенести.
... << RSDN@Home 1.1.4 beta 4 rev. 309>>
Re: Командная строка TotalCmd vs bat&cmd :)
От: okurietz Россия  
Дата: 14.02.05 07:42
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Не знал куда закинуть, т.к. вопрос достаточно общий, решил к C++ т.к. думаю тут больше грамотного народу .


А>Проблема следующая :

А>

А>Cscript WiRunSQL.vbs setup.msi "UPDATE `Control` SET `Control`.`Text`='{\VSI_MS_Sans_Serif13.0_0_0}Отмена' WHERE `Control`.`Text`='{\VSI_MS_Sans_Serif13.0_0_0}Cancel'"


А>Т.е. данная коммандная строка изменяет поле в БД со значением Cancel на русский — Отмена. Нужна для руссификации БД.

А>WiRunSQL.vbs — скрипт Visual Basic который собственно выполняет SQL запрос который передается ему как параметр.


А>Так вот, если данную комманду выполнить из bat(или cmd) файла то кодировка портится и в базу добавляется

А>кракозябры. Если выполнить из строки Total Commander то все нормально. Видится слово Отмена.
А>В чем @ порылась ???

Как тебе уже объяснили — все дело в кодировках.
В консоли винды используется кодировка CP866.
Решается довольно просто.
Пишешь батник в кодировке cp1251 с содержимым
А>

А>Cscript WiRunSQL.vbs setup.msi "UPDATE `Control` SET `Control`.`Text`='{\VSI_MS_Sans_Serif13.0_0_0}Отмена' WHERE `Control`.`Text`='{\VSI_MS_Sans_Serif13.0_0_0}Cancel'"

 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.