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

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

Ответить
Настройки темы
CMD/BAT - с новой строки

Аватара для Freddy1984

Старожил


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

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


Здравствуйте!
Есть вопрос по записи текста с новой строки.
Подробней.
Вот так:
> 1.txt echo первый
в файл запишется слово первый, это понятно.
А хотелось бы если это возможно сделать так: > 1.txt echo первый второй что бы второй был с новой строки.
Пробовал > 1.txt echo первый echo. второй так не получается.
Вообще возможно слово второй автоматом писать с новой строки следом за первый ?

Отправлено: 17:49, 25-05-2017

 

Забанен


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

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


В чем сложность? В пакетном режиме:
Код: Выделить весь код
@echo off
  >out.txt (
    echo:first
    echo:second
    echo:third
  )
exit /b
В консоли:
Код: Выделить весь код
E:\> type con>out.txt
first
second
third
^Z
^Z - это нажатие Ctrl+Z.
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:38, 25-05-2017 | #2



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

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


Ветеран


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

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


Цитата Freddy1984:
А хотелось бы если это возможно сделать так: > 1.txt echo первый второй что бы второй был с новой строки.

Вообще возможно слово второй автоматом писать с новой строки следом за первый ? »
Разве что процедурой оформить. Например:
Скрытый текст
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

call :Write первый второй третий

endlocal
exit /b 0

:Write
	set sValue=%1
	if defined sValue (
		echo %sValue%
		shift
		goto :Write
	)
	exit /b 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:54, 25-05-2017 | #3


Аватара для Freddy1984

Старожил


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

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


Благодарю вас ребята!
Самый первый вариант подошел просто идеально, вариант Iska беру на заметку как довольно интересный подход.

Отправлено: 21:46, 25-05-2017 | #4


Ветеран


Contributor


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

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


Еще вариант
Код: Выделить весь код
@echo Off
>"file.txt" (FOR %%s IN (первый второй третий "у попа была собака" "поп её любил" сотый "сто двадцать пятый") DO Echo %%~s)
или то же самое
Код: Выделить весь код
@echo Off

Set "FileOut=file.txt"
Set "Str=первый второй третий "у попа была собака" "поп её любил" сотый"

>"%FileOut%" (FOR %%s IN (%Str%) DO Echo %%~s)

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

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

Отправлено: 22:07, 25-05-2017 | #5


Ветеран


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

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


Цитата Freddy1984:
Пробовал > 1.txt echo первый echo. второй »
а надо было всего лишь добавить &
Код: Выделить весь код
>1.txt (echo Первый& echo Второй& echo Третий)
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:13, 26-05-2017 | #6


Ветеран


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

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


Не нашел подходящей темы, спрошу тут. Нужно отдельном окне консоли запустить несколько команд, причём команды должны быть записаны с новой строки. т.е. преобразовать строку вида
Код: Выделить весь код
@echo off
start /wait cmd /c "echo 111& echo 222 &pause"
pause
в что-то типа
Код: Выделить весь код
@echo off
start /wait cmd /c "^
echo 111 &^
echo 222 &^
pause"
pause

Отправлено: 18:19, 23-08-2018 | #7


Ветеран


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

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


Цитата sov44:
причём команды должны быть записаны с новой строки »
1. Должны быть записаны с новой строки в исходном пакетном файле или же должны быть записаны отображаться с новой строки в отдельном окне консоли?
2. Почему сие так принципиально? Какова цель и задача этого, для чего служит сие?

Отправлено: 18:42, 23-08-2018 | #8


Ветеран


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

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


Iska, реальная строчка строчка start /wait cmd /c ..... получается слишком длинная, нужно её разбить с переносом команд. Оптимизация кода и косметика. Нужен принцип.

Отправлено: 18:56, 23-08-2018 | #9


Аватара для YuS_2

Crazy


Contributor


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

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


Цитата sov44:
Нужно отдельном окне консоли запустить несколько команд, причём команды должны быть записаны с новой строки. »
непонятно зачем, но аналог:
Код: Выделить весь код
@echo off
start "" /wait cmd /c (
echo 111
echo 222
pause
)
pause
правда нового окна, как раз, не будет.
А зачем, если не секрет?

-------
scio me nihil scire. Ѫ


Отправлено: 18:57, 23-08-2018 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Поиск строки по слову и добавление новой строки после найденой. Mikhael2011 Скриптовые языки администрирования Windows 17 16-03-2017 03:37
CMD/BAT - Поиск и замена строки в txt файлах по содержанию этой строки. sayyad Скриптовые языки администрирования Windows 1 06-12-2015 13:20
CMD/BAT - поиск новой строки в тхт файле Xeruvim4ik Скриптовые языки администрирования Windows 8 17-02-2014 00:51
.NET - DataGrid запрет добавления новой строки Delirium Программирование и базы данных 0 04-03-2011 08:50
MSFT SQL Server - [решено] Создание новой строки по таймеру без внешней программы HohOl78 Программирование и базы данных 2 09-09-2008 23:32




 
Переход