Hallo Romero,
hier ein Testprogramm, das Dir anzeigt, welches Zeichen an welcher Position eingegeben wurde und ob dieses Zeichen an der entsprechenden Position auch gültig ist.
Anmerkungen:
(1) Die Zählung der Zeichenposition beginnt grundsätzlich bei 0 (Null).
(2) Die verzögerte Variablenauflösung ist eingeschaltet.
(3) Grenzen des Programms: ungültige Zeichen (Klammern, <, | usw.) können
nicht abgefangen werden.
@ECHO off
SETLOCAL enabledelayedexpansion
REM
REM Testprogramm
REM Laenge der Zeichenfolge testen
REM Gleichzeitig ermitteln, ob gueltige Zeichen an den
REM entsprechenden Positionen stehen
REM Version 1
REM Achtung:
REM Ungültige Zeichen (Klammern, <, | usw.) können nicht abgefangen werden.
REM
https://supportnet.de/t/2211287
REM
REM (c) batti-batch 02/2009
REM
REM getestet unter Windows 2000
REM ************************ SET-Block Beginn ************************
REM ************************ SET-Block Ende **************************
:: Eingabe des Bereichs
:bereich
CLS
ECHO Bitte geben Sie den Bereich
ECHO.
ECHO oder "E" fuer Ende ein^^!
ECHO.
SET /p "bereich=Bitte Ihre Eingabe: "
ECHO.
REM Zurueckweisen einer leeren Eingabe
REM Ruecksprung zur Eingabe
IF [%bereich%] EQU [] GOTO :bereich
REM "E" fuer Programmende eingegeben
REM Programm beenden
SET "ende=^%bereich:~0,1%"
IF [%ende%] EQU [%bereich%] IF [%ende%] EQU [E] (
ECHO Programmende & GOTO :eof
)
REM Laenge der Zeichenfolge testen
REM Gleichzeitig ermitteln,
REM ob Buchstaben und Ziffern an den
REM entsprechenden Positionen stehen
FOR /l %%a IN (0,1,5) DO (
REM Position des Zeichens ausgeben
REM Nicht vergessen: Die Zaehlung beginnt bei Null!
ECHO Position des Zeichens: "%%a"
REM Eingegebene Zeichenfolge zerlegen
REM Einzelnes Zeichen mit SET /a der Variable
REM "zifferntest" zuweisen
SET "test=!bereich:~%%a,1!
IF [!test!] NEQ [] SET /a "zifferntest=!test!"
IF [%%a] EQU [0] IF [!test!] EQU [!zifferntest!] (
ECHO Ziffer "!test!" an Position 0 ^(Fehler^^!^)
) ELSE (
ECHO Buchstabe "!test!" an Position 0 ^(OK^)
)
IF [%%a] EQU [1] IF [!test!] NEQ [!zifferntest!] (
ECHO Buchstabe "!test!" an Position 1 ^(OK^)
) ELSE (
ECHO Ziffer "!test!" an Position 1 ^(auch OK^)
)
IF [!test!] NEQ [] IF [%%a] EQU [2] IF [!test!] NEQ [!zifferntest!] (
ECHO Buchstabe "!test!" an Position 2 ^(Fehler^^!^)
) ELSE (
ECHO Ziffer "!test!" an Position 2 ^(OK^)
)
IF [!test!] NEQ [] IF [%%a] EQU [3] IF [!test!] NEQ [!zifferntest!] (
ECHO Buchstabe "!test!" an Position 3 ^(Fehler^^!^)
) ELSE (
ECHO Ziffer "!test!" an Position 3 ^(OK^)
)
IF [!test!] NEQ [] IF [%%a] EQU [4] IF [!test!] NEQ [!zifferntest!] (
ECHO Buchstabe "!test!" an Position 4 ^(Fehler^^!^)
) ELSE (
ECHO Ziffer "!test!" an Position 4 ^(OK^)
)
REM Laenge der eingegebenen Zeichenfolge ungueltig
IF [%%a] EQU [5] IF [!test!] EQU [] (
ECHO Kein Zeichen an Position 5 gefunden. ^(OK^)
) ELSE (
ECHO Fehler^^!
ECHO Zeichen "!test!" an Position 5 gefunden.
ECHO Die Eingabe hat eine ungueltige Laenge^^!
)
ECHO.
)
Das Programm dient nur zum Test; zum Einbau in Dein Script muss es angepasst werden.
Viel Spaß beim Testen.
Herzliche Grüße
batti-batch