Re: plik *.bat dla ping dwóch hostów

Autor: Grzegorz Niemirowski <gnthexfiles_at_poczta.onet.pl>
Data: Tue, 5 Jun 2012 00:55:56 +0200
Message-ID: <jqjee3$obu$1@news.icpnet.pl>
Content-Type: text/plain; format=flowed; charset="iso-8859-2"; reply-type=response

1634Racine <1634_at_Racine.pl> napisał(a):
>>>>> if exist 212.2.96.51 [NIC NIE ROB]
>>> wiec juz tylko z ciekawosci: tego "nic nie rob" nie da sie jakims madrym
>>> poleceniem skryptowym zastapic? :)
>> Można mu kazac iść na koniec skryptu.
> goto end
> i skoczy do linii "goto start1"? o to chodzi?

Skoczy tam gdzie chcesz :) Jeśli ostatnią linią będzie
:end
to skoczy do niej i skrypt się zakończy. Jeśli :end dasz przed goto start1
to poleci na początek.

> ok, poprobuje tak przerobionego skryptu. Chociaz malo w tym sensu, bo ta
> powyzsza nieregularnosc, ewentualne nadpisywanie...
> dzieki za pomoc, rzuce okiem w skladnie polecen wsadowych, mam jakies
> niezle manuale, podlubie w tym troche, a jak srednio bedzie - zawsze jest
> jakis "Ping Tester" :)

Dobra, to jeszcze PowerShell. Powinno działać, aczkolwiek te joby z
powershella mają pewien swój narzut i wątki nie tworzą się tak szybko jak w
BAT. W każdym razie pod względem logiki jest wszystko jak chciałeś.

while($true) {

    "212.2.96.51", "212.77.100.101" | %{
        start-job -ArgumentList $_ -scriptblock { $test = test-connection
$args[0] -count 1 -quiet; return $args[0],$test } | out-null
    }

    # wait for all the jobs to finish
    get-job | wait-job | out-null
    # store the jobs into an array
    $jobs = get-job
    # holds the results of the jobs
    $results = @()
    foreach ($job in $jobs) {
        # grab the job output
        $temp = receive-job -id $job.id -keep
        $results += ,($temp[0],$temp[1])
    }

    # stop and remove all jobs
    get-job | stop-job
    get-job | remove-job

    # sort the results
    $results = $results | sort @{Expression={$_[0]}; Ascending=$false}
    # report the results

    if ($results[0][1] -eq $false -or $results[1][1] -eq $false) {

        foreach ($result in $results) {
            if ($result[1]) {
                add-content log.txt "$($result[0]) is responding"
            } else {
                add-content log.txt "$($result[0]) is not responding"
            }
        }

    }
}

-- 
Grzegorz Niemirowski
http://www.grzegorz.net/
OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
Uptime: 0 days, 15 hours, 17 minutes and 23 seconds 
Received on Tue 05 Jun 2012 - 01:00:03 MET DST

To archiwum zostało wygenerowane przez hypermail 2.2.0 : Tue 05 Jun 2012 - 01:42:01 MET DST