Задачка, которую нужно решить в CMD :)

gsharov

Ну в общем то - крик души Ну и мож кто посоветует чего. В общем - задача - определить IP компа, заменить в айпи последний октет последовательно на несколько других (по циклу, скажем от 1 - до 10). По полученным айпишникам пройтись пингом. Найти последний, который пингуется. Если все до него тоже пингуются - радостно пикнуть. Если есть провалы - пикнуть грустно и вывести список адресов которые не пингуются. Главная проблема в том - что нужно делать только средствами винды Причем даже VBs не катит (запрещен политикой). Т.е. CMD + встроенные комманды. Я блин заколебался уже Главное - там еще с дец по другому, чем в досе Ну почему в винде нету баша и сед

Helga87

Ну почему в винде нету баша и сед

В винде есть wsh и PowerShell. На PowerShell сделать это можно без извратов. Но раз у вас там политики всякие, то и установить его скорее всего не удастся.

Marinavo_0507

> В винде есть
> установить его скорее всего не удастся
Отличная политика!

Helga87

Я имел ввиду, что не удастся установить, если нет администраторских прав. Это разумное утверждение, поскольку вместе с XP/2003 PowerShell не поставляется. В Висте PowerShell будет устанавливаться вместе с системой и неудобства уйдут.

gsharov

Ага. Ща все встали и дружно побежали на висту У нас до сих пор 90% машин с винтукеем. 98 нет только потому, что с доменами в ней хреново
Ну а права то есть... вот только на 400 с гаком машин ставить что либо не хочется. Хотя я подумываю гавк позаливать. Вроде есть статическая сборка... Но тоже бы не хотелось

Helga87

Т.к. есть домен, то теоретически можно одним махом сначала установить .net framework 2.0, затем powershell. В реальности, конечно, это гемор и так делать не надо.

0000

А что совсем WSH не подходит? Он как раз для таких целей... (правда это VBScript или JScript)

Helga87

См первый пост, wsh запрещен:
Причем даже VBs не катит (запрещен политикой).

0000

А можно узнать каким макаром?
P.S. Из первого поста > wsh запрещен - этого не следовало

Helga87

Ну, это еще следовало из второго поста, в котором я упоминал wsh. Т.к. не отреагировал, следует, что о wsh он знает, он не подходит. Т.е. похоже на то, что упоминание о запрещенном vbs на самом деле говорит о запрещенном wsh

durka82

Ну почему в винде нету баша и сед
А что мешает поставить Cygwin?
Его же вроде даже можно и не ставить, а расшарить по сети и запускать с удаленной папки (или нельзя?).

apl13

А что мешает поставить Cygwin?
Кстати, да. Есть же еще MinGW и даже, по-моему, специально собранные под винду GNU Utils.

artimon

Чисто приколоться:
@echo off
for /f "tokens=2 delims=:" %%a in ('ipconfig ^| find "IP-"') do set z=%%a
for /f "tokens=1-4 delims=. " %%a in ("%z%") do set z=%%a.%%b.%%c
for /l %%a in (1,1,19) do (
ping -n 1 -w 1 %z%.%%a >nul || echo No answer from %z%.%%a
)

yolki

ipconfig | find "IP-"
выдаёт пустую строку

yolki

на W2003 Server ENG чтобы заработало нужно делать так:

@echo off
for /f "tokens=2 delims=:" %%a in ('ipconfig ^| find "IP "') do set z=%%a
for /f "tokens=1-4 delims=. " %%a in ("%z%") do set z=%%a.%%b.%%c
for /l %%a in (1,1,9) do (
ping -n 1 -w 1 %z%.%%a > nul || echo No answer from %z%.%%a
)

gsharov

Во. Сыскались атцы Даже короче, чем на шелле вышло, наверное Но блин как извратски... Блин - и чего стоило майкрософту нормальный шел откуда нить свистнуть Так что спасибо вдвойне Над этим уже можно думать
ЗЫ wsh запрещен на корню. Как - хз - я домен не админю. Знаю что даже у меня не работает, хотя у меня права расширенные. А установка цигвина и дотнета не катят хотя бы потому, что каналы очень хреновые - сутки качатся будет

artimon

У меня дома только русская винда (зато лицензионная )

Ivan8209

> каналы очень хреновые - сутки качатся будет
Один раз скачал, что можно сделать и в другом месте, где канал получше,
а ставить можно уже "локально."
Если "дотнет" такое не поддерживает, тем хуже для него.
---
Q21: что такое Win2k?
A21: состема.

Helga87

Если "дотнет" такое не поддерживает, тем хуже для него.
дотнет такое поддерживает

Ivan8209

> определить IP компа
Который из?

$ ipconfig | grep 'IP Address' | wc -l
12

У тебя очень странная задача.
Может, тебе надо просто найти те адреса, которые не пингуются?
Есть такое средство --- nmap.
А ещё есть /usr/pkgsrc/net/fping, но не знаю, работает ли он под твоей состемой.
---
...Я работаю антинаучным аферистом...

artimon

Кстати, можно так
ipconfig | findstr "IP^ Address IP-"

gsharov

Под этой состемой ниче не работает А насчет 1 раз скачал, потом поставил... Машин больше 500. И у всех хреновые каналы Так. В общем то ужо дописал все. Так что всем спасибо Возник правда еще 1 вопрос - как экранировать || в cmd? Типа мне надо сделать echo "echo 123 || echo 345" > file; call file (ну там много чего в него пишется, просто 1 раз встречается ||). Если все в кавычки - то тупое echo все в кавычках и выдает. Одинарные - тоже не катят Даже нормального экранирования спецсимволов нет в этом "шелле"

gsharov

бля. я щас заплачу. Это оказалось не просто, а очень непросто почитайте, если кому интересно
http://www.ericphelps.com/batch/secondry/index.htm

artimon

echo echo 123 ^|^| echo 345 > file

Ivan8209

> Машин больше 500. И у всех хреновые каналы
Они вообще никак не связаны?
Поставить wget, положить на сервер готовую тару, закачать распаковать, установить.
Самое сложное --- первоначальная заливка wget, tar и раскручивающего скрипта.
---
...Я работаю антинаучным аферистом...

bleyman

ЖЕСТЬ!

bleyman

Через промт особенно жёстко

gsharov

Вообще никак. Они по две. Типа два тут, две там. Две в самаре, две в воронеже Короче хренова. Лучше бы про экранирование хто ответил. В той ссылке, что я привел они изощеряются через жопу, но мне ни один способ не подошел, потому что одновременно || и %a типа переменные. подстава блин. Может можно что придумать... типа надо из бата написать в другой бат что то вроде
ftp -g -s:ftp.cl %I || echo fail %i

Tatiana09

У меня (под XP) получилось так:
echo ftp -g -s:ftp.cl %%I ^|^| echo fail %%i > result.bat

P.S Если ничего не получится, может быть можно скачать заранее изготовленный файлик, содержащий два пайпа, и создавать искомый батник конкатенацией первой части строки, этого файлика и второй части строки?

gsharov

Получилось тэкс. Это хорошо. Только ftp как то криво статус выхода формирует. Точнее говоря - походу не успевает... Ладно - будем дальше мучаться
Оставить комментарий
Имя или ник:
Комментарий: