有没有办法像 Bash 那样不需要外部资源就能实现这一点?
我想提示用户输入并将输入复制到变量中,以防它也是多行的(例如,如果他或她将文本复制粘贴到提示上)
也许使用 Powershell -命令?
正如 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