Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - CRLF для cmd-файла

Ответить
Настройки темы
CMD/BAT - CRLF для cmd-файла

Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


Есть cmd-файл и хочется по результатам его работы вывести вразумительный текст для пользователя
Уже замучил Гугл и Яндекс этими вопросами - безрезультатно, поэтому пришёл сюда

...
set strOut=результат выполнения операции 1
...
set strOUT=%strOUT%CrLfрезультат выполнения операции 2
...
set strOUT=%strOUT%CrLfрезультат выполнения операции N

:EndCMD
echo %strOUT%

И чтобы сообщение выглядело так:
результат выполнения операции 1
результат выполнения операции 2
результат выполнения операции N

Alt+13 и Alt+10 пробовал, получил отлуп: "результат выполнения операции 2" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

Чувствую, что должно быть что-то позволяющее объединять строки с переходом на новую строку, но никак не могу найти

Отправлено: 15:17, 30-09-2015

 

Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


Вместо
Код: Выделить весь код
 ...
 set strOut=результат выполнения операции 1
 ...
 set strOUT=%strOUT%CrLfрезультат выполнения операции 2
 ...
 set strOUT=%strOUT%CrLfрезультат выполнения операции N
сделать
Код: Выделить весь код
...
Echo результат выполнения операции 1
 ...
Echo результат выполнения операции 2
 ...
Echo результат выполнения операции N
А в чём смысл их объединять? Из принципа? Так гораздо нагляднее - если что-то делается, то видно, на каком Вы шаге.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 30-09-2015 в 16:13.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:57, 30-09-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо.
Как обойти это - есть варианты, ОЧЕНЬ хочется сделать это именно объединением строк

Потому что в конце работы эта итоговая строка будет выводиться на экран, если файл был запущен пользователем. Или будет отправляться в лог-файл если был вызван из другого бат-файла

Не верится, что нет возможности вставить код перевод строки

Отправлено: 16:14, 30-09-2015 | #3


Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
...
set strOut="результат выполнения операции 1"
...
set strOUT= %strOUT% "результат выполнения операции 2"
...
set strOUT= %strOUT% "результат выполнения операции N"
...
...
FOR %%i IN (%strOUT%) DO Echo %%i
Если нельзя, но очень хочется, то можно

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 30-09-2015 в 16:30.


Отправлено: 16:25, 30-09-2015 | #4


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Так и делайте так, Выводите
Код: Выделить весь код
echo ...1>>log.txt
...
echo ...2>>log.txt
...
и получите в log.txt именно
Цитата ВасилийП:
И чтобы сообщение выглядело так:
результат выполнения операции 1
результат выполнения операции 2
результат выполнения операции N »
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:29, 30-09-2015 | #5


Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата alpap:
и получите в log.txt именно »
И если добавить
Код: Выделить весь код
 if "%1" EQU "" type log.txt
то получится то, что надо!

PS: а перед началом работы проверять наличие этого log.txt и удалять его

Отправлено: 16:45, 30-09-2015 | #6


Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата megaloman:
Код: Выделить весь код
FOR %%i IN (%strOUT%) DO Echo %%i
»
Пробую Ваш вариант и пока никак не могу убрать апострофы

"результат выполнения операции 1"
"результат выполнения операции 2"
"результат выполнения операции N"

Отправлено: 17:05, 30-09-2015 | #7


Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


Если не надо кавычки, то

FOR %%i IN (%strOUT%) DO Echo %%~I

Или, если в файл

del log.txt
FOR %%i IN (%strOUT%) DO Echo %%~I >>log.txt

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 30-09-2015 в 17:27.

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:17, 30-09-2015 | #8


Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата megaloman:
FOR %%i IN (%strOUT%) DO Echo %%~i »
Спасибо!
Какими только извращениями я не пытался убрать эти апострофы... А всех делов было на одну тильду!

Вы могли бы подсказать нормальный справочник по командам cmd?

Что-то пока ничего толкового и нормально структурированного не попалось - обрывки знаний только находятся.

Вопрос уже ставший чисто теоретическим - неужели авторы не предусмотрели возможности штатными средствами вставлять в строки символы управления?

Вот никак не могу в это поверить - столько всего накрутили, а про CrLf забыли?!

Отправлено: 17:25, 30-09-2015 | #9


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата ВасилийП:
Вопрос уже ставший чисто теоретическим - неужели авторы не предусмотрели возможности штатными средствами вставлять в строки символы управления? »
Дело за малым — кто будет обрабатывать эти управляющие конструкции. ANSY.SYS остался в далёком прошлом.

Хотите современного — переходите на PowerShell, там «их есть».

Отправлено: 18:21, 30-09-2015 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - CRLF для cmd-файла

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Командный сценарий для копирования файла (Файл .cmd) p-xel Автоматическая установка Windows 2000/XP/2003 3 28-11-2011 03:01
CMD/BAT - Как написать CMD скрипт для запуска определенного файла по дате и времени traxomot Скриптовые языки администрирования Windows 1 15-12-2010 11:50
CMD/BAT - [решено] Помогите запустить CMD-файл из CMD-файла с параметрами Oleg48 Скриптовые языки администрирования Windows 2 18-11-2009 11:08
CMD/BAT - [решено] Создание CMD/BAT файла для удаления лишних папок Vsirf Скриптовые языки администрирования Windows 4 04-06-2009 20:37




 
Переход