|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Как экранировать \ |
|
CMD/BAT - Как экранировать \
|
Новый участник Сообщения: 10 |
Добрый день. Попросили прикрутить утилиту. На вход она просит текст, при этом внутри она ищет \r\n и по ним разбивает строку на подстроки. Проблема в том что когда я ввожу в консоль текст с \r\n, она почему то его автоматически экранируются слешем(\\r\\n), в следствии чего программе не может получить подстроки. Кавычки одинарные и двойные не помогают, если сам экранирую и прямым и обратным слешем тоже не помогает. Подскажите пожалуйста как победить win консоль?
|
|
Отправлено: 15:12, 07-08-2017 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 15:46, 07-08-2017 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать К сожалению утилиту не могу выложить. Запускаю ее из консоли командой: C:\MyProg\prog.exe param1\r\nparam2. Загвоздка в том, что к строке vector <string> vM = split<string>(var[1], "\r\n") переменная var[1] имеет значение уже param1\\r\\nparam2. Изменить программу я не могу. Можно как-то запретить cmd менять \ на \\?
|
Отправлено: 16:00, 07-08-2017 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать NikiWin, ещё раз: интерпретатор команд тут не при чём. Он ничего здесь не меняет. Можете взять Process Explorer и посмотреть, что приходит на вход утилите. Можете взять Process Monitor и убедиться и с его помощью.
Я не пойму: у Вас есть её исходный код? Откуда это: Цитата NikiWin:
|
|
Отправлено: 16:30, 07-08-2017 | #4 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать У меня есть ее исходный код, но я не могу ее менять. Написана она на С. Если посмотреть через Process Explorer то действительно, в командной строке везде по одному слешу выдает, но если сразу в main вывести argv то получим C:\\MyProg\\prog.exe в argv[0] и param1\\r\\nparam2 в argv[1].
|
|
Отправлено: 16:45, 07-08-2017 | #5 |
Ушел из жизни Сообщения: 8595
|
Профиль | Сайт | Отправить PM | Цитировать Цитата NikiWin:
|
|
------- Отправлено: 16:59, 07-08-2017 | #6 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать Если без слешей, то ничего не добавится, будет просто текст. Привел скрин простейшей программы и значение переменных под отладчиком.
|
Отправлено: 17:03, 07-08-2017 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 20:17, 07-08-2017 | #8 |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать Используется Visual с++. Я проверил у меня тоже корректно выводит из приложения данные(с одним слешем), но именно в программе отладчик показывает два слеша и судя по работе split переменные внутри программы содержат два слеша.
|
Отправлено: 09:04, 08-08-2017 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата NikiWin:
|
|
Последний раз редактировалось Iska, 08-08-2017 в 09:30. Отправлено: 09:25, 08-08-2017 | #10 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - экранировать скобки в данных из реестра | kokos76 | Скриптовые языки администрирования Windows | 9 | 11-01-2016 08:21 | |
CMD/BAT - [решено] Как экранировать символ? | Seryoga204 | Скриптовые языки администрирования Windows | 7 | 27-09-2010 22:50 | |
CMD/BAT - [решено] Как экранировать символ "=" в имени файла | chobov | Скриптовые языки администрирования Windows | 3 | 11-09-2010 01:28 |
|