Форум Кургана и Курганской области и наших друзей

Зима. Форум Кургана и Курганской области и наших друзей
01 Декабрь 2020, 23:58:28 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости:
 
   Начало   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Вопрос по cmd  (Прочитано 872 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Vertex
Коллежский секретарь
****

Карма: 12
Offline Offline

у пользователя 1 предупреждение
Пол: Мужской
Сообщений: 373



Награды
« : 11 Декабрь 2010, 00:37:55 »

Вопрос по cmd.
Собственно особо никогда не вникал, а тут решил расширить свой кругозор...
Написал такую конструкцию
for /L %%i in (1,1,10) do for /L %%x in (1,1,10) do for /L %%y in (1,1,10) do for /L %%z in (1,1,10) do ping %%i.%%x.%%y.%%z.
Штукенция будет пинговать широкий диапазон хостов.
Подскажите как реализовать данную задачу:

Нужно создать файл cmd, при запуске чтобы пинговал указанный в нём адрес.
Знаю что написать можно просто в файле ping с указанием адреса и не парится, но я хочу
передать значения переменных в параметр команды пинг.
Т.е. в начале присвоить переменным адрес, а потом эти переменные передать в команду ping 

Пытался реализовать так:
%%i = 192
%%x = 168
%%y = 1
%%z = 2
ping %%i.%%x.%%y.%%z
не катит....
Подскажите если возможно
Записан

Когда мужчине плохо - он ищет женщин. Когда мужчине хорошо - его ищут женщины
SPV
Коллежский асессор
******

Карма: 147
Offline Offline

Пол: Мужской
Сообщений: 1992

90027_veteran.gif


Награды
« Ответ #1 : 11 Декабрь 2010, 00:48:18 »

set /a a = 192
set /a b = 168
set /a c = 1
set /a d = 2
ping %a%.%b%.%c%.%d%
Записан
Vertex
Коллежский секретарь
****

Карма: 12
Offline Offline

у пользователя 1 предупреждение
Пол: Мужской
Сообщений: 373



Награды
« Ответ #2 : 11 Декабрь 2010, 01:09:39 »

Спасибо yahoo
Записан

Когда мужчине плохо - он ищет женщин. Когда мужчине хорошо - его ищут женщины
XapoH
Титулярный советник
*****

Карма: 133
Offline Offline

Сообщений: 707


УВЧ! СР!


Награды
« Ответ #3 : 11 Декабрь 2010, 01:39:32 »

Как вариант:
Код:
call :myPing 192 168 1 2
exit /b
:myPing
ping %1.%2.%3.%4
exit /b
Функциональненько!
На правах адепта ФП: временные переменные - зло! :D

Бтв, в "set /a a = 192" ключ /a не нужен, т.к. там никаких арифметических действий нету.
« Последнее редактирование: 11 Декабрь 2010, 01:44:20 от XapoH » Записан
SPV
Коллежский асессор
******

Карма: 147
Offline Offline

Пол: Мужской
Сообщений: 1992

90027_veteran.gif


Награды
« Ответ #4 : 11 Декабрь 2010, 11:58:25 »

Бтв, в "set /a a = 192" ключ /a не нужен, т.к. там никаких арифметических действий нету.

Так оно, но у меня без /a почему-то не фурычит:

Код:
M:\>type myping.cmd
@echo off
set a = 192
set b = 168
set c = 1
set d = 2
echo ping %a%.%b%.%c%.%d%
pause
exit
M:\>myping.cmd
ping ...
Для продолжения нажмите любую клавишу . . .

M:\>type myping.cmd
@echo off
set /a a = 192
set /a b = 168
set /a c = 1
set /a d = 2
echo ping %a%.%b%.%c%.%d%
pause
exit
M:\>myping.cmd
ping 192.168.1.2
Для продолжения нажмите любую клавишу . . .
Записан
XapoH
Титулярный советник
*****

Карма: 133
Offline Offline

Сообщений: 707


УВЧ! СР!


Награды
« Ответ #5 : 11 Декабрь 2010, 12:22:36 »

Код:
D:\>test.cmd
@echo off
type test.cmd
set a=192
set b=168
set c=1
set d=2
echo.
echo.
echo ping %a%.%b%.%c%.%d%

ping 192.168.1.2

D:\>
Учтите, batch-script это очень, ОЧЕНЬ зависимый от взаимного расположения лексем язык.
Там даже лишний пробел может привести к неработоспособности программы.
Очевидно, что его интерпретатор писал какой-то быдлокодер, больной раком мозга.
« Последнее редактирование: 11 Декабрь 2010, 12:25:52 от XapoH » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006-2008, Simple Machines LLC
rss | wap
Valid XHTML 1.0! Valid CSS!