如果我传递这样的文字:
first line
second line
到.bat文件,它只将第一行作为参数值。
我该如何解决这个问题? 感谢
答案 0 :(得分:2)
在批处理文件参数中传递换行几乎是不可能的。它可以完成,但我认为没有人能够在批处理文件中正确地读取这样的参数。
最好的办法是定义一个包含两行文本的环境变量,包括换行符。然后将变量的名称作为参数传递给批处理,然后让批处理文件使用延迟扩展来访问该值。
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
答案 1 :(得分:0)
您可以访问所有参数,但仅当批处理文件以cmd /c
启动时,例如。喜欢拖放动作。
@echo off
setlocal EnableDelayedExpansion
echo !cmdcmdline!
但是如果你从提示符启动批处理文件,那么这将不起作用,因为cmdcmdline
仅包含cmd.exe的启动方式,在这种情况下它通常类似于"C:\Windows\system32\cmd.exe"
。