Новая строка при выполнении Set in Batch script - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть строка ниже в моем пакетном скрипте

SET /P _option= "Please select doc to be updated:       1 for Akeneo                2 for SFCC      3 for Contentful"

, которая отображается в CMD, как показано ниже

Please enter doc to be updated:     1 for Akeneo                2 for SFCC      3 for Contentful

Как изменить ее, чтобы добавить новую строку междуЗаявление я хочу, чтобы отобразить его в CMD, как показано ниже

Please select doc to be updated:        
1 for Akeneo                
2 for SFCC      
3 for Contentful

Ответы [ 3 ]

1 голос
/ 20 сентября 2019

Если вы используете escape-символ, вы можете присвоить новую строку переменной окружения и использовать ее в строке приглашения:

@echo off
setlocal enabledelayedexpansion

@rem The empty lines after "set NL" are important
set NL=^


SET /P _option= "Please select doc to be updated:!NL!1 for Akeneo!NL!2 for SFCC!NL!3 for Contentful!NL!"

echo you picked !_option!

Как правило, гораздо проще использовать команду choice, поскольку онапредотвращает неправильный ввод, и вы также можете избежать необходимости помещать все в одну строку:

@echo off
setlocal enabledelayedexpansion

echo Please select doc to be updated:
echo 1 for Akeneo
echo 2 for SFCC
echo 3 for Contentful
choice /c 123
set _option=!errorlevel!

echo you picked !_option!
0 голосов
/ 20 сентября 2019

На мой взгляд, самый простой способ сделать это:

echo.
echo [1]Akkeno
echo.
echo[2]SFCC
echo.
echo[3]Contentful

set /p choice=Which document would you like to change?:
if %choice% == 1 goto ch1
if %choice% == 2 goto ch2
if %choice% == 3 goto ch3

и так далее

0 голосов
/ 20 сентября 2019

Как вы можете видеть из другого ответа, это очень возможно, но для вас это немного излишне, если вы захотите сделать это там, где доступны другие опции, например, echo:

@echo off
echo Please select doc to be updated:        
echo 1 for Akeneo                
echo 2 for SFCC      
echo 3 for Contentful
set /p _option=

Я бы также посоветовал вам использовать choice для этого вместо set

 @echo off
echo Please select doc to be updated:        
echo 1 for Akeneo                
echo 2 for SFCC      
echo 3 for Contentful
choice /c 123
goto :opt%errorlevel%

:opt3
echo you selected 3 for Contentful
goto :eof
:opt2
echo you selected 2 for SFCC
goto :eof
:opt1
echo you selected 1 for Akeneo
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...