Как использовать символ новой строки в тексте в пакете cmd?

Я хотел бы сделать

svn commit -m "<message>"

но сообщение должно быть две строки:

Commit by: firstuser
Bug track: 9283

Как добавить новый символ строки в сообщение? Я пробовал SHIFT+ENTER, CTRL+T, но это не работает. Я использую командную строку MS cmd.

11 ответов


Как насчет использования -F параметр для получения сообщения журнала из файла?

тогда вы можете сделать это (непроверено):

ECHO Commit by: firstuser>SvnLog.txt
ECHO Bug track: 9283>>SvnLog.txt

SVN COMMIT -F SvnLog.txt

Я нашел ответ на Serverfault:

svn ci -m $'This is the first line\nThis is the second line'

видимо это shell-проблема.


у меня была та же проблема, и пока ответ Клааса Могрена не работает с cmd.exe это заставило меня подумать, есть ли оболочка в Windows, которая может это сделать.
И, конечно, есть... В PowerShell.

используя оболочку PowerShell, вы можете достичь этого, используя следующую команду:

svn ci -m "reference to Ninject fixed`nsome ignores added"

обратите внимание на комбинацию backqoute и n в сообщении

`n

чтобы создать новую строку в сообщении svn, лучше всего использовать aphoria с дополнительным файлом сообщения.

но это можно сделать и с помощью -m

образец с пакетным файлом

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set lf=^


rem ** Two empty lines are neccessary for creating the Linefeed
svn commit -m "A!lf!Message!lf!with!LF!newline"

вы также можете использовать его в командной строке

svn commit -m ^"This is a^
MORE?
MORE?my newline"

просто писать svn ci -m "old line пресс Enter затем введите следующую строку new line"

Example

Это намного проще, чем использовать файл.


вы можете определить строку следующим образом:

set newline=^& echo.

затем вы можете использовать новую строку в других операторах, например: (без кавычек)

echo This is the first line%newline%This is the second line
echo "This is the first line"%newline%"This is the second line"

или с дополнительной осторожностью, как это:

set text=This is the first line^%newline%This is the second line

возможно, вы можете играть с этим, но имейте в виду комбинацию с цитатами!


Я использую следующий метод, и он работает:

svn commit {list of files to commit}

после ввода вышеуказанной команды и нажатия enter откроется редактор. Напишите там свой комментарий и выйдите из редактора. После выхода из редактора команда commit будет выполнена, и все, что вы написали в редакторе, также будет зафиксировано.


проблема в том, что" enter " (Ascii 13) отправляет команду. Итак, вам нужна "новая строка"

используйте alt + 10 (нажмите alt, введите номер в блоке numberblock, отпустите alt)


это работает для нас:

частный статический конечный символ LF = (char) 13;

setMessage("Test"  + LF + "Jij" + LF + "Dit" + LF + "Effe");

напишите сообщение в текстовом редакторе и просто скопируйте и вставьте его в терминал(редактор команд).

  1. просто введите сообщение в текстовом редакторе, в несколько строк.

    -m "строка сообщения

    сообщение 2

    строка сообщения 3"

  2. введите требуемую команду в Редакторе команд.

    команда svn

  3. скопируйте и вставьте содержимое сообщения из текстового редактора в команду редактор.

    svn command-m "строка сообщения 1.

    сообщение 2

    строка сообщения 3"

4.Выполнить Ввод .

5.Работает:)


попробуйте что-то вроде этого:

echo Message1 & echo Message2 & echo Message3