Lista winnt@man.lodz.pl
[Lista archiwów] [Inne Listy]

Re: [WINNT] Okno wiersza poleceń, właściwości, ustawienia bufora

To: winnt@man.lodz.pl
Subject: Re: [WINNT] Okno wiersza poleceń, właściwości, ustawienia bufora
From: artiun <artiun@spam.wp.pl>
Date: Sat, 10 Jun 2017 05:00:55 +0200
W dniu 2017-06-07 o 08:51, adam_l@poczta.onet.pl pisze:
Może coś takiego:

---TEST.BAT---
@echo off
IF NOT (%1)==() goto start
echo.
echo Brak parametru - adresu IP
goto koniec
:start
SET OK=X
ECHO %DATE% %TIME% *** START BADANIA ADRESU %1 ***
ECHO %DATE% %TIME% *** START BADANIA ADRESU %1 *** >>test_%1.log
:petla
PING -n 2 -w 1000 %1 >nul
IF ERRORLEVEL 1 GOTO blad
IF %OK%==T GOTO petla
SET OK=T
ECHO %DATE% %TIME% adres %1 OK
ECHO %DATE% %TIME% adres %1 OK >>test_%1.log
GOTO petla

:blad
REM ECHO tu wstaw kilka znaków o kodzie ASC 7 by mieć sygnał z głośniczka
IF %OK%==N GOTO petla
SET OK=N
ECHO %DATE% %TIME% adres %1 ERROR
ECHO %DATE% %TIME% adres %1 ERROR >>test_%1.log
GOTO petla
:koniec
---EOF---

W wyniku otrzymasz tylko daty i czasy zmian OK<->ERROR

Adam
OK :) Upewniłeś mnie w nienawiści do GOTO :) Cukiereczek - symulacja
obiektowości (nie piszę o procedurach/funkcjach - call), tu GOTO służy za return/exit (powrót/na koniec). Nie używam - wolę .js (ale możliwości były i są).

@Echo Off
setlocal enabledelayedexpansion

::
:: Przykładowa klasa w cmd do odczytu pliku linia po linii
::

:: ======================
:: Wywołanie
:: ======================
call :Plik klasa info.txt
%klasa.read%
echo Ilosc linii  : %klasa.count%
echo Druga linia  : %klasa.lines.1%
echo Trzecia linia: %klasa.lines.2%

goto :EOF

:: ==============
:: Konstruktor
:: ==============

:Plik
::
:: %1 to suffiks (nazwa klasy)
:: %2 to wartość (nazwa pliku, więc nazwa_klasy.name=wartość)
::
set %1.name=%2
::
:: metoda: nazwa_klasy.read będzie wywoływała sub (Plik.read)
:: z parametrem będącym nazwą klasy
::
set %1.read=call :Plik.read %1
goto :EOF

:: ========================
:: Metoda - odczyt z pliku
:: ========================

:Plik.read
set j=0
for /f "delims=" %%i in ('type !%1.name!') do (
   set %1.lines.!j!=%%i
   set /a j=!j!+1
)
set %1.count=%j%
goto :EOF



--
Artur

<Pop. w Wątku] Aktualny Wątek [Nast. w Wątku>