Можно ли поместить новый символ строки в эхо-строку в пакетном файле?
В принципе, я хочу иметь возможность сделать эквивалент:
echo Hello\nWorld
Вы можете сделать это достаточно легко в Linux, но я не могу понять, как это сделать в Windows.
Можно ли поместить новый символ строки в эхо-строку в пакетном файле?
В принципе, я хочу иметь возможность сделать эквивалент:
echo Hello\nWorld
Вы можете сделать это достаточно легко в Linux, но я не могу понять, как это сделать в Windows.
echo.
печатает пустую строку.
Пример:
echo Hello
echo.
echo world
печатает
Hello
world
Его можно решить с помощью одного эха.
Для этого вам нужен символ новой строки \n
.
Существует несколько способов получить новую строку в echo
1) В этом примере используется многострочная каретка для добавления новой строки в команду,
требуется пустая строка
echo Hello^
world
2) Следующее решение создает первую переменную, содержащую один символ строки.
set \n=^
rem ** Two empty lines are required
Или создайте новую строку со слегка измененной версией
(set \n=^
%=DONT REMOVE THIS=%
)
И используйте этот символ с задержкой расширения
setlocal EnableDelayedExpansion
echo Hello!\n!world
Чтобы использовать символ линии с расширением percent, вам нужно создать более сложную последовательность
echo Hello^%\n%%\n%world
Или вы можете использовать новый взлом строки
REM Creating a Newline variable (the two blank lines are required!)
set \n=^
set NL=^^^%\n%%\n%^%\n%%\n%
REM Example Usage:
echo There should be a newline%NL%inserted here.
Но только замедленное расширение новой строки работает надежно, также внутри кавычек.
После небольшого эксперимента я обнаружил, что это возможно сделать без выдачи двух отдельных команд эха, как описано в Как вы можете повторить новую строку в пакетных файлах?. Однако, чтобы заставить его работать, вам понадобится текстовый редактор, который не преобразует CR в CR + LF.
Тип:
@echo First Line
затем включив NumLock, удерживайте клавишу ALT и введите 10 на цифровой клавиатуре, прежде чем отпускать ALT (вы должны использовать цифровую клавиатуру, а не цифровые клавиши верхнего ряда). Это добавит символ CR. Затем введите вторую строку. В зависимости от вашего редактора и того, как он обрабатывает CR по сравнению с CR + LF, вы можете получить:
@echo First Line◙Second Line
или
@echo First Line
Second Line
Это работает из командной строки и будет работать в пакетном файле, если текстовый редактор не преобразует CR в CR + LF (какие редакторы Windows/DOS делают, если вы их не настроили). Если CR преобразуется в CR + LF, или если вы используете только LF, вторая строка интерпретируется как новая команда.
Однако я не понимаю, почему это было бы предпочтительнее:
@echo First Line
@echo Second Line
Ахаха,
Я думаю, что я разработал что-то достаточно близко...
echo hello&echo.&echo world
Выдает:
Привет
мир
эхо. или эхо-сигнала (
сделает пустую новую строку. Надеюсь, что это будет полезно.
Я нашел это очень информативным, поэтому хотел опубликовать лучший пример, используя предоставленные ответы
Это обеспечивает хорошо отформатированное сообщение об использовании
if "%1" == """" goto usage
:usage
echo USAGE: %0 [Set properties using -D flag] [Ant Task to Run] &
echo. &
echo Availble Command line properties &
echo -------------------------------- &
...
Я думаю, что это невозможно. Вы можете попробовать только ascii-character: http://www.asciitable.com/ Но это может привести к сбою вашего пакетного файла.