Spis treści ·
Praca ·
Menu ·
Dysk
Skrypt obsługi We/Wy dysku
Parametry We/Wy
Okno dialogowe We/Wy
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 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 WARUNEK 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
-- %ATASTATUS% - ATA Status Register (zdefiniowany, jeśli BSY bit jest wyzerowany, DOS ATA tylko)
-- %ATAERROR% - ATA Error Register (zdefiniowany, jeśli ERR bit
%ATASTATUS% jest ustawiony)
-- %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
7-DOSASPI
8-DOSMSCDEX
9-DOSFILE
--
11-WINFILE
12-WINSCSI
13-WIN9XINT13
14-WINATA
--
20-LINUXFILE
21-LINUXSCSI
-- %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
-- RESETDEVLIST - update the list of devices, reopen disk handle
-- ATARESET - ATA Soft Reset (DOS ATA tylko)
-- ATARESETDET - ATA Soft Reset i ATA Identify (DOS ATA 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