如何在cmd批处理中的文本中使用换行符?

时间:2009-04-06 12:41:40

标签: svn batch-file

我想做

svn commit -m "<message>"

但是消息应该有两行:

Commit by: firstuser
Bug track: 9283

如何在邮件中添加换行符?我尝试过SHIFT + ENTER,CTRL + T但它不起作用。我使用MS cmd命令行。

12 个答案:

答案 0 :(得分:12)

如何使用-F参数从文件中获取日志消息?

然后,你可以这样做(未经测试):

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

SVN COMMIT -F SvnLog.txt

答案 1 :(得分:12)

我在Serverfault找到了答案:

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

显然它是shell-problem

答案 2 :(得分:6)

要在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"

答案 3 :(得分:6)

我遇到了同样的问题,虽然Claes Mogren的回答不适用于cmd.exe,但我认为如果Windows上有一个shell可以做到这一点。
当然还有...... PowerShell。

使用PowerShell shell,您可以使用以下命令实现此目的:

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

注意消息

中backqoute和n的组合
`n

答案 4 :(得分:5)

只需写下svn ci -m "old line输入,然后输入下一行new line"

Example

这比使用文件容易得多。

答案 5 :(得分:3)

您可以按如下方式定义换行符:

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

也许你可以玩那个,但要注意与引号的结合!

答案 6 :(得分:1)

我使用以下方法,它可以工作:

svn commit {list of files to commit}

输入上述命令并按回车键后,将打开一个编辑器。在那里写下您的评论并退出编辑器。退出编辑器后,将执行commit命令,并且您在编辑器中编写的任何内容也将被提交。

答案 7 :(得分:0)

问题是“输入”(Ascii 13)发送命令。所以你需要一个“换行符”

使用alt + 10(按alt键,在数字栏处键入数字,释放alt)

答案 8 :(得分:0)

这对我们有用:

private static final char LF =(char)13;

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

答案 9 :(得分:0)

在文本编辑器中编写消息,然后将其复制并粘贴到终端(命令编辑器)。

  1. 只需在文本编辑器中以多行输入消息即可。

    -m&#34;消息行

    消息第2行

    消息行3&#34;

  2. 在命令编辑器中输入所需的命令。

    svn命令

  3. 将消息内容从文本编辑器复制并粘贴到命令编辑器。

    svn command -m&#34;消息行1。

    消息第2行

    消息行3&#34;

  4. 4.Execute Enter。

    5.工作正常:)

答案 10 :(得分:0)

@jeb的answer

的其他示例

answer:

set br= ^
<</br (newline)>>
<</br>>

示例:

@echo off
setlocal enableExtensions enableDelayedExpansion
rem cd /D "%~dp0"
set br= ^


rem br, can't be saved to a var. by using %..%;


set "t=t1!br!t2!br!t3"

for /f "usebackq tokens=* delims=" %%q in ('!t!') do (
    echo %%q
)


:scIn
rem endlocal
pause
rem exit /b

;输出:

t1
t2
t3
Press any key to continue . . .

答案 11 :(得分:-1)

尝试这样的事情:

echo Message1&amp; echo Message2&amp; echo Message3