Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Переменная (http://forum.oszone.net/showthread.php?t=347628)

RuslanGr 14-01-2021 01:48 2946109

Переменная
 
Помогите пожалуйста
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 2946113

RuslanGr, потому что Вы используете кривой код.

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

megaloman 14-01-2021 11:54 2946134

RuslanGr,
Код:

@Echo Off
        Set "123=456"
        Echo "%123%"

В ответе "23". Смею предположить, что %123% рассматривается как %1(то есть как передаваемый в батник параметр а его здесь нет, он пустой) и всё остальное.
Как подтверждение:
Код:

@Echo Off
        Set "0123=456"
        Echo "%0123%"

В ответе: "имябатника.bat123"
Цитата:

Цитата Iska
не используйте в именах собственных переменных окружения гольные цифры »

Соблюдайте законы: божеские, государственные, мануалы и будет всё безопаснее и для Вас и для окружающих :)

alpap 16-01-2021 00:24 2946369

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

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



Время: 16:29.

Время: 16:29.
© OSzone.net 2001-