Компьютерный форум 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=343245)

frost987 11-12-2019 16:20 2899972

Вывод напечатанного текста.
 
Здравствуйте.
Подскажите пожалуйста. Хочу сделать что бы набранный текст выводился следующей строкой. Не пойму что делаю не так.

set /p pam=Set number :
if "%pam%"=="" (
Set /A Result=pam
Echo !Result!
)

alpap 11-12-2019 16:41 2899974

так у вас присвоение переменной идет по условию только когда как раз если ничего не введено, вероятно так надо:
Код:

set /p pam=Set number :
if "%pam%"=="" (echo:) else set /a Result=pam
Echo %Result%
pause

во всяком случае (согласно: set /? для ключа А) если ничего не вводить при запросе значением переменной Result будет 0
Код:

@echo off
set /p pam=Set number :
if "%pam%"=="" set /a Result=pam
Echo %Result%
pause

а если по задаче вам действительно надо вывести в команде if, то надо добавить: setlocal enabledelayedexpansion
Код:

@echo off
setlocal enabledelayedexpansion
set /p pam=Set number :
if "%pam%"=="" (
 set /a Result=pam
 Echo !Result!
)
pause


Iska 11-12-2019 17:34 2899979

frost987, добавлю к сказанному коллегой alpap: для целей отладки целесообразно заключать выводимые значения, например, в скобки, a-la:
Код:

echo [%pam%]

echo [!Result!]


megaloman 11-12-2019 18:55 2899987

Кипит мой разум возмущенный :)
Цитата:

Цитата frost987
Хочу сделать что бы набранный текст выводился следующей строкой »

Что такое набранный текст, это набор произвольных символов или число?
А где логика: если "%pam%"=="" то Rezult чему то присваивается (в данном случае ничему)
А чему равен Rezult когда иначе??
А как понять Set /A Result=pam
Если нужно получить 0, то так и надо писАть Set /A Result=0
А так можно с тем же успехом написать Set /A Result=pamоспоырповпофпы
Вот интересная конструкция:
Код:

@Echo Off
cls
        Set /A pam=2222
        Set /p pam=Set number :
Echo %pam%
pause
Exit /B

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

frost987 12-12-2019 10:09 2900059

Всем спасибо за помощь. Разобрался.


Время: 03:59.

Время: 03:59.
© OSzone.net 2001-