如果我传递这样的文本:
first line
second line
当将一个.bat文件作为参数值时,它只会获取第一行内容。
有什么办法可以解决这个问题吗? 谢谢。
first line
second line
当将一个.bat文件作为参数值时,它只会获取第一行内容。
有什么办法可以解决这个问题吗? 谢谢。
在批处理文件参数中传递换行几乎是不可能的。虽然可以实现,但我认为没有人开发出一种切实可行的方法来正确读取这样的参数。
最好的方法是定义一个包含两行文本(包括换行符)的环境变量。然后将变量名称作为批处理参数传递,并让批处理文件使用延迟扩展来访问该值。
test.bat:
@echo off
setlocal enableDelayedExpansion
echo !%1!
从命令行开始:
>set multiLine=hello^
More?
More? world
>test multiLine
hello
world
对于任何有兴趣的人,这里是由jeb发起的关于批处理参数中换行符的讨论:http://www.dostips.com/forum/viewtopic.php?t=1768
cmd /c
启动,比如拖放操作。@echo off
setlocal EnableDelayedExpansion
echo !cmdcmdline!
但是,如果您从提示符中启动批处理文件,则此方法将无法正常工作,因为cmdcmdline
仅包含cmd.exe的启动方式,在这种情况下,通常是"C:\Windows\system32\cmd.exe"
。