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

问题描述 投票:0回答:1

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

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

也许使用 Powershell -命令?

windows batch-file powershell
1个回答
1
投票

正如 Aacini 提到的,不可能使用单个

set /p

您可以使用
set /p
的循环,但您需要一种结束标记来离开循环。

或者您可以使用

copy con input.tmp
,但随后您必须使用 CTRL-Z 完成输入。

带有

set /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
© www.soinside.com 2019 - 2024. All rights reserved.