Parameters 如何将新行作为参数的文本传递到bat文件?

Parameters 如何将新行作为参数的文本传递到bat文件?,parameters,batch-file,newline,command-prompt,Parameters,Batch File,Newline,Command Prompt,如果我像这样传递文本: first line second line 对于.bat文件,它仅将第一行作为参数值 我怎样才能解决这个问题? 谢谢在批处理文件参数中传递换行几乎是不可能的。这是可以做到的,但我认为还没有人开发出一种实用的方法来正确读取批处理文件中的此类参数 最好是定义一个包含两行文本(包括换行符)的环境变量。然后将变量的名称作为参数传递给批处理,然后让批处理文件使用延迟扩展访问该值 test.bat: @echo off setlocal enableDelayedExpansio

如果我像这样传递文本:

first line
second line
对于.bat文件,它仅将第一行作为参数值

我怎样才能解决这个问题?
谢谢

在批处理文件参数中传递换行几乎是不可能的。这是可以做到的,但我认为还没有人开发出一种实用的方法来正确读取批处理文件中的此类参数

最好是定义一个包含两行文本(包括换行符)的环境变量。然后将变量的名称作为参数传递给批处理,然后让批处理文件使用延迟扩展访问该值

test.bat:

@echo off
setlocal enableDelayedExpansion
echo !%1!
从命令行:

>set multiLine=hello^
More?
More? world

>test multiLine
hello
world

对于任何感兴趣的人,这里有一个由jeb发起的关于批处理参数中换行符的讨论:

您可以访问所有参数,但前提是批处理文件以
cmd/c
开头,例如,像拖放操作一样

@echo off
setlocal EnableDelayedExpansion
echo !cmdcmdline!

但是如果您从提示符启动批处理文件,那么这将不起作用,因为
cmdline
仅包含cmd.exe的启动方式,在这种情况下,它通常类似于
“C:\Windows\system32\cmd.exe”

如何将文本传递到批处理文件?从外部程序,从命令行,如何插入换行符?