Войти

Показать полную графическую версию : Переменная


RuslanGr
14-01-2021, 01:48
Помогите пожалуйста
chcp 1251>nul 2>&1
echo off
set 123=456 :: Переменная
pause
if %123%==456 (echo 1) else (echo 2) :: Выводит 2
pause
В этом коде есть переменная, но когда я прописываю код с выводом этой переменной, то показывает как-будто этой переменной небыло. В консоле всё прекрасно работало, я делал переменную прописывал if %123%==456 (echo 1) else (echo 2)
и мне выводило 1, а в bat файле всё наоборотi

Iska
14-01-2021, 05:43
RuslanGr, потому что Вы используете кривой код.

Во-первых, не используйте в именах собственных переменных окружения гольные цифры. Во-вторых, не забывайте, что пробел в присвоениях тоже значимый символ. В треьих, не пытайтесь пользовать :: в виде недокомментариев — оно для того не предназначено.

megaloman
14-01-2021, 11:54
RuslanGr, @Echo Off
Set "123=456"
Echo "%123%"В ответе "23". Смею предположить, что %123% рассматривается как %1(то есть как передаваемый в батник параметр а его здесь нет, он пустой) и всё остальное.
Как подтверждение:@Echo Off
Set "0123=456"
Echo "%0123%"В ответе: "имябатника.bat123"не используйте в именах собственных переменных окружения гольные цифры »Соблюдайте законы: божеские, государственные, мануалы и будет всё безопаснее и для Вас и для окружающих :)

alpap
16-01-2021, 00:24
RuslanGr, нежелательно чтобы имя переменной начиналось с цифры, еще хуже состояло только из цифр и совсем плохо из одной цифры (также надо исключить имя bat файла, имена команд и утилит cmd)

@echo off
set "123=456"
cmd /v/c echo "!123!"
pause




© OSzone.net 2001-2012