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

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

SergeiSO 26-10-2017 07:36 2773433

Ввод данных в bat
 
Здравствуйте, есть батник который пингует разными способами. По идее юзер вводит ip как параментр при запуске типа ping.bat 192.168.0.1 <параметры>. Я хочу сделать что-бы батник проверял ввели ли IP и если нет, предложил бы ввести. Вот что я написал:
if %1=="" (
set /p var1="Enter IP-"
set %1=="%var1%"
)
И ноль реакции. Что я не так делаю? Подскажите пожалуйста.

Iska 26-10-2017 07:48 2773434

Код:

@echo off
setlocal enableextensions enabledelayedexpansion

set sIP=%~1

if not defined sIP (
        set /p sIP=Enter IP:
)

if defined sIP (
        echo [%sIP%]
) else (
        exit /b 1
)

endlocal
exit /b 0

Цитата:

Цитата SergeiSO
И ноль реакции. Что я не так делаю? »

Проводите некорректное по синтаксису сравнение «if %1==""» в случае отсутствия заданного параметра. Проводите некорректное присваивание «set %1=="%var1%"» — внутренним переменным %0-%9 нельзя присвоить значение по set (да и не нужно).

SergeiSO 26-10-2017 08:08 2773437

Спс огромное все работает. Как я понял, %0-%9 в батнике вообще не поменять? Печально, у меня там все на них завязано.

Iska 26-10-2017 09:06 2773441

Цитата:

Цитата SergeiSO
Как я понял, %0-%9 в батнике вообще не поменять? Печально, у меня там все на них завязано. »

А зачем их менять? Я же пишу — в этом нет никакой необходимости. Просто присваиваете по нужде их содержимое переменным окружения и пользуете последние. В каких-то случаях используется shift.


Время: 22:53.

Время: 22:53.
© OSzone.net 2001-