Как избежать лишних пробелов в значении переменной при появлении запроса в командном файле Windows cmd - PullRequest
0 голосов
/ 24 октября 2018

Я испытываю странное поведение с пакетным сценарием Windows, когда хочу прочитать значение, предложив пользователю.Вот мой сценарий:

echo off

set VALUE=toto
set _VALUE=
set /p _VALUE=Enter the value or leave blank to accept default (%VALUE%):

if [%_VALUE%] NEQ [] ( set VALUE=%_VALUE% )

set _VALUE=

echo "%VALUE%"

Если я оставлю значение по умолчанию, вот что я получу, как и ожидалось:

...>myscript.cmd
Enter the value or leave blank to accept default (toto):
"toto"

Но если я введу новое значение, вот что янеожиданно получить:

...>myscript.cmd
Enter the value or leave blank to accept default (toto): titi
"titi "
  • Почему после titi есть пробел, как видно из "titi "?

  • Что следуетбудет ли синтаксис просто получить "titi" как положено?

Заранее спасибо за помощь!

1 Ответ

0 голосов
/ 24 октября 2018

Чтобы исправить свой код, вы можете сделать это как лучшую практику.

@echo off

set VALUE=toto
set _VALUE=
set /p _VALUE=Enter the value or leave blank to accept default (%VALUE%):

if NOT "%_VALUE%"=="" set "VALUE=%_VALUE%"

set _VALUE=

echo "%VALUE%"

Но все, что вам действительно нужно сделать, это.

set "VALUE=toto"
set /p VALUE=Enter the value or leave blank to accept default (%VALUE%):
echo %value%
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...