Spis treści · Praca · Menu · Dysk · Parametry We/Wy Okno dialogowe We/Wy

### Skrypt obsługi We/Wy dysku

Skrypt ten może być używane do logowania błędów We/Wy i rozszerzone przetwarzanie błędów (w tym połączeń zewnętrznych programu). Ta funkcja jest dostępna w Professional Edition tylko.

Skrypt może być załadowany lub zmodyfikowane przez parametry We/Wy urządzenia (przycisk `Skrypt`).

Plik `deviolog.txt` jest prosty skrypt do rejestrowania błędów We/Wy.

Plik `ondevhsc.txt` zawiera krótki opis dostępnych komend i kilka przykładowych skryptów.

Możliwe linii skryptu są w postaci:
`IF WARUNEK KOMENDA`
lub
`KOMENDA`
lub
`:LABEL`
gdzie warunkiem jest nierówności lub równości
(`!=`, `>`, `<`, `>=`, `<=`, `=`) dwóch ilości,
i ilość jest albo stałą liczbą całkowitą (`0`, `1`, ...)
lub zmienna (lista poniżej)
lub proste wyrażenie matematyczne (operatorów `+`, `-`, `*`, `%`, `/`,
bez nawiasów, ignorując matematyczny porządek z operatorów),
np. `%ERROR%=0`
Komentarze są poprzedzane przez dwa minusy (`--`)
-- Zmienne (wszystkie są od zera):
-- %CONFIRM% - =1 jeśli `Potwierdź` naciśnięciu, =0 jeśli `Anuluj` przycisku
(okno dialogowe czeka na wybór użytkownika)
-- %DISKNUM% - numer dysku w macierzy RAID
-- %TRYNUM% - numer próba
-- %LBA% - numer pierwszego sektora We/Wy
-- %SECNUM% - liczba sektorów
-- %ERROR% - numer błędu
-- %LINE% - bieżący numer linii w skrypcie
-- %SERVICE% - typu usługi We/Wy:
-- 0-ATA 1-ATAPI 3-BIOSINT13OLD 4-BIOSINT13
-- 5-DOSINT25 6-DOSINT73 8-DOSMSCDEX 9-DOSFILE
-- 11-WINFILE 12-WINSCSI 14-WIN9XINT13 20-LINUXFILE
-- %LASTRES% - wynik z poprzedniego komendy
-- %LASTERR% - błąd z poprzedniej komendy
--
-- Komendy:
-- SHOWDLG - życie okno wyskakujące We/Wy urządzenia
-- WAIT - oczekiwanie na wybór użytkownika
-- DELAY N - opóźnienie N ms
-- EXECCMD CMDLINE - wykonywanie zewnętrznych komendu CMDLINE za pomocą interpretera komend
(czyli "cmd CMDLINE" w systemie Windows)
-- EXECCMDQ CMDLINE - wykonać bez tworzenia nowego okna konsoli
-- EXEC "FILENAME" CMDLINE - wezwanie zewnętrznego program FILENAME z parametrem CMDLINE
-- EXECQ "FILENAME" CMDLINE - wezwanie bez tworzenia nowego okna konsoli
-- MSDOS - wezwanie procesoru komen (nie są obsługiwane w systemie Linux)
-- GOTO LABELNAME - skok do etykiety LABELNAME w skrypcie (do linii `:LABELNAME`)
-- RETURN - skrypt przerwie, obsluga błędu zgodnie z parametrami We/Wu urządzenia
-- RETRETRY - skrypt przerwie jak wciśnięty `Ponów` przycisk
-- RETIGNORE - skrypt przerwie jak wciśnięty `Ignoruj` przycisk
-- RETABORT - skrypt przerwie jak wciśnięty `Przerwij` przycisk
-- ADDLOG "FILENAME" LOGLINE - napisz LOGLINE do pliku FILENAME
(LOGLINE łańcuch może zawierać zmienne)
-- CANCELIO - wezwanie `CancelIO` (WinNT + tylko)
(dostępna, jeśli urządzenie jest otwarte z `overlapped` się opcja)
-- OVLRESLT N - sprawdź wynik `Overlapped`-operacji (N=1: czekać; N=0: nie czekać) (WinNT+ tylko)
(muszą być używane, jeśli urządzenie jest otwarte z `overlapped` opcja)
-- RESETHANDLE - otwórz ponownie uchwyt dysku (WinNT + tylko)
--
-- Specyfikatory formatu:
-- Aby cyfrowy format wyjściowy nazwy zmiennej może nastąpić
-- przez format specyfikatora po dwukropku, np.
-- %LBA:8x% - szerokość: 8, szesnastkowy
-- Przykład skryptu:
IF %ERROR%=0 RETURN -- wyjść jeśli nie błąd na We/Wy
IF %ERROR%=128 GOTO LABEL1
IF %ERROR%=5 GOTO LABEL1
RETURN
:LABEL1
IF %CONFIRM%=0 RETRETRY -- spróbuj ponownie , jeśli przycisk Anuluj jest wciśnięty
-- kontynuować wykonywanie skryptu, jeśli Potwierdź jest wciśnięty
EXECCMD /K ECHO error %ERROR% at LBA: %LBA% (%SECNUM%) try: %TRYNUM%. Wpisz EXIT aby powrócić.
IF %TRYNUM%<2 RETRETRY
DELAY 500
ADDLOG "C:\ERRORS.LOG" error %ERROR:x% at LBA: %LBA:10% (%SECNUM%) try: %TRYNUM%
RETIGNORE