Win BAT脚本中的Heredoc(多行输入)

时间:2014-05-13 12:07:42

标签: windows batch-file powershell

有没有办法实现这一点,而不需要像Bash那样需要外部资源?

我想提示用户输入并将输入复制到变量中,以防它也是多线的(例如,如果他或她将文本复制粘贴到提示中)

也许使用Powershell -command?

1 个答案:

答案 0 :(得分:1)

正如Aacini所说,不可能使用单set /p 您可以使用set /p的循环,但是您需要一种结束标记来离开循环。

或者您可以使用copy con input.tmp,但是您必须使用CTRL-Z完成输入。

sep /p停在第一个空行的样本。

@echo off
setlocal EnableDelayedExpansion
SET LF=^


REM ** Two empty lines are required
call :input
echo !input!
exit /b


:input
set "input="
:inputLoop
set "line="
set /p "line=Enter text, stop with an empty line :"
if defined line (
    set "input=!input!!line!!LF!"
    goto :inputLoop
)
exit /b