Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
 Re: xp_cmdshell что делать если путь содержит кавычки  [new]
BioVR
Member

Откуда: Москва
Сообщений: 31
o-o,

скорее всего так и есть - проблема в кодировке - в итоге просто добавил такую обработку:
replace(output,'''','’')
скопировав символ из названия файла - теперь работает как надо.
Если всплывет что то еще, буду уже в кодировке разбираться.
13 авг 14, 15:25    [16437096]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell что делать если путь содержит кавычки  [new]
BioVR
Member

Откуда: Москва
Сообщений: 31
Glory
BioVR
Glory, в общем понятно - троль есть троль. Чего с Вами спорить и пытаться что то объяснить.

Конечно. Главное, что вы написали прекрасный код, а "плохие" команды неправильно отображают результаты.


Если Вы так считаете, то мне Вас жаль.
Я ни слова не сказал ни про прекрасный код, ни про плохие команды. Пока Вы тут тролили человек дал действенную подсказку на кодировку.
13 авг 14, 15:26    [16437114]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell что делать если путь содержит кавычки  [new]
Glory
Member

Откуда:
Сообщений: 104751
BioVR
Пока Вы тут тролили человек дал действенную подсказку на кодировку.

Даже не буду спрашивать, что вы называете "кодировкой"

BioVR
Я ни слова не сказал ни про прекрасный код, ни про плохие команды.

"т.е. вместо верхней запятой отображает верхнюю кавычку."
Я ему говорю - отображай правильно, а он ни в какую
13 авг 14, 15:29    [16437137]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell что делать если путь содержит кавычки  [new]
Офисный Хомячок
Member

Откуда: Офис
Сообщений: 1358
BioVR
o-o,

скорее всего так и есть - проблема в кодировке - в итоге просто добавил такую обработку:
replace(output,'''','’')
скопировав символ из названия файла - теперь работает как надо.
Если всплывет что то еще, буду уже в кодировке разбираться.


А если в имени файла и правда будет ' разве это не вызовет ошибку?
13 авг 14, 15:42    [16437234]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell что делать если путь содержит кавычки  [new]
o-o
Guest
товарищи! корень зла в том, что поганый символ действительно из 146 превращается в 39 при сохранении в таблицу,
хоть бы и в юникодную колонку.
щас подумаю, как это обойти

К сообщению приложен файл. Размер - 33Kb
13 авг 14, 15:56    [16437337]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell что делать если путь содержит кавычки  [new]
Glory
Member

Откуда:
Сообщений: 104751
o-o
товарищи! корень зла в том, что поганый символ действительно из 146 превращается в 39 при сохранении в таблицу,

Проверьте сначала, что у вас соответствует каждому символу
SELECT UNICODE(N''''), UNICODE(N'’'), NCHAR(39), NCHAR(146)
13 авг 14, 16:08    [16437437]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell что делать если путь содержит кавычки  [new]
Glory
Member

Откуда:
Сообщений: 104751
И в студии нужно переключить вывод из Грида в Текст
13 авг 14, 16:19    [16437499]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell что делать если путь содержит кавычки  [new]
o-o
Guest
вот что получилось(см. картинку), только уже ничего не понимаю.
146 у меня вышло, если скопировать из форума символ ТС
и опросить его ascii.
и те файлы я создаю с "его" символом, скопированным из темы.
и они же в винде показываются визуально как то самое,
но в табличку исправно кладется 39

К сообщению приложен файл. Размер - 31Kb
13 авг 14, 16:21    [16437507]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell что делать если путь содержит кавычки  [new]
o-o
Guest
вот текстом

К сообщению приложен файл. Размер - 30Kb
13 авг 14, 16:22    [16437518]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell что делать если путь содержит кавычки  [new]
Glory
Member

Откуда:
Сообщений: 104751
declare @t table(f1 nvarchar(100))
exec xp_cmdshell N'@echo Test1>> C:\wo\File''1''.txt'
exec xp_cmdshell N'@echo Test2>> C:\wo\File`2`.txt'
exec xp_cmdshell N'@echo Test3>> C:\wo\File’3’.txt'
insert @t exec xp_cmdshell N'dir c:\wo\file*.txt /B'
select *, unicode(substring(f1, 5,1)) from @t
exec xp_cmdshell N'dir c:\wo\file*.txt /B'


(4 row(s) affected)
f1
---------------------------------------------------------------------------------------------------- -----------
File'1'.txt 39
File`2`.txt 96
File’3’.txt 8217
NULL NULL

(4 row(s) affected)

output
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
File'1'.txt
File`2`.txt
File’3’.txt
NULL

(4 row(s) affected)
13 авг 14, 16:24    [16437529]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell что делать если путь содержит кавычки  [new]
o-o
Guest
клянусь, никакого мошенничества с картинкой

К сообщению приложен файл. Размер - 23Kb
13 авг 14, 16:32    [16437589]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell что делать если путь содержит кавычки  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Думается мне, не обошлось здесь без collation. У меня cyrillic_ci_as и такой же результат, как и у o-o.
13 авг 14, 16:35    [16437604]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell что делать если путь содержит кавычки  [new]
o-o
Guest
а винда показывает, что третий файл с теми нужными символами
13 авг 14, 16:35    [16437607]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell что делать если путь содержит кавычки  [new]
o-o
Guest
я пробую выполнять в контекстах двух баз, кириллической и латинской, все одно.
13 авг 14, 16:38    [16437626]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell что делать если путь содержит кавычки  [new]
Glory
Member

Откуда:
Сообщений: 104751
Гавриленко Сергей Алексеевич
Думается мне, не обошлось здесь без collation. У меня cyrillic_ci_as и такой же результат, как и у o-o.

У меня разумеется никакого cyrillic
13 авг 14, 16:38    [16437628]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell что делать если путь содержит кавычки  [new]
o-o
Guest
Glory,

а винда у вас не русская случайно?
13 авг 14, 16:40    [16437641]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell что делать если путь содержит кавычки  [new]
Glory
Member

Откуда:
Сообщений: 104751
o-o
Glory,

а винда у вас не русская случайно?

Английская
13 авг 14, 16:42    [16437661]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell что делать если путь содержит кавычки  [new]
o-o
Guest
Glory,

у меня тоже винда английская, а коллэйшены всюду латинские,
а результат с вашим не сходится.

извините за тупой вопрос, но у вас вот этот UNICODE(N'’')=8217, он какой код ASCII имеет?
13 авг 14, 16:48    [16437707]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell что делать если путь содержит кавычки  [new]
Glory
Member

Откуда:
Сообщений: 104751
И у меня кстати другой эффект
В проводнике файлы
File'1'.txt
File’3’.txt
отображаются с одинаковыми апострофами
13 авг 14, 16:48    [16437711]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell что делать если путь содержит кавычки  [new]
Glory
Member

Откуда:
Сообщений: 104751
Т.е.
exec xp_cmdshell N'@echo Test3>> C:\wo\File’3’.txt'
exec xp_cmdshell N'@echo Test4>> C:\wo\File''3''.txt'
в проводнике выглядят, как абсолютно одинаковые файлы
13 авг 14, 16:50    [16437721]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell что делать если путь содержит кавычки  [new]
o-o
Guest
почему-то мне кажется, где-то у нас разнятся кодовые страницы.
в винде что-ли.
и этот самый символ со своим ASCII попадает в ту часть, к-ая разнится от страницы к странице.
как сервер подменяет ненайденное в своей кодовой странице на вопросик,
так подменяется и вылезшая из 0..127 кавычка на кавычку 39.
только не цепляйтесь к фразе "в своей кодовой странице", я могу точно описать, я про что, но это займет страницу
13 авг 14, 16:55    [16437755]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell что делать если путь содержит кавычки  [new]
Glory
Member

Откуда:
Сообщений: 104751
o-o
почему-то мне кажется, где-то у нас разнятся кодовые страницы.
в винде что-ли.

Отсюда и вопрос. ТО, что создовало файл, оно то какой код символа использовало в имени файла.
Я лично вижу, что если я создал имя с кодом 8217
exec xp_cmdshell N'@echo Test3>> C:\wo\File’3’.txt'
то и прочитал его
при этом визуализация этого символа в других программах может отличаться
13 авг 14, 17:02    [16437793]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell что делать если путь содержит кавычки  [new]
o-o
Guest
Glory
o-o
почему-то мне кажется, где-то у нас разнятся кодовые страницы.
в винде что-ли.

Отсюда и вопрос. ТО, что создовало файл, оно то какой код символа использовало в имени файла.


ну уж точно не 39, у меня же в винде отображается "смотрящей налево" кавычкой.
т.е. создано правильно, а вот дальше досовская команда отображает в своей кодовой странице.
и в моей уже бурда(39), а вот в эстонской -- посмотрите:

К сообщению приложен файл. Размер - 13Kb
13 авг 14, 17:22    [16437901]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell что делать если путь содержит кавычки  [new]
Glory
Member

Откуда:
Сообщений: 104751
o-o
ну уж точно не 39, у меня же в винде отображается "смотрящей налево" кавычкой.
т.е. создано правильно, а вот дальше досовская команда отображает в своей кодовой странице.

Я и говорю про визуализацию в разных программах
Как я уже сказал, в Проводнике у меня отбражается два соврешенно одинаковых имени файла, с одинаковыми кавычками
Которые в той же командной строке уже не выглядят одинаково.
13 авг 14, 17:31    [16437939]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell что делать если путь содержит кавычки  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8807
Аффтор, за каким лешим Вы используете xp_cmdwhell? Это вобще команда для админов, которым надо на скорую руку проверить дисковое пространство или еще чего.
13 авг 14, 17:39    [16437979]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить