|
Samstag, den 10. Oktober 2009 um 01:09 Uhr |
Eine Hashliste, basierend auf Variablennamen. Bisher ohne sinnvolle Anwendung, und der Frage nach dem Erzeugen. Aber WENN man eine Datei mit Inhalt wie in dem Beispiel hat, kann man darauf schneller zugreifen. Bzw ohne Hashwerte kann man daraus auch ein praktisches Array machen.
@echo off setlocal enabledelayedexpansion
REM --------------- HASHLIST -----------------
REM Beispielliste set hash="a0009;IST" "a0008;HAUS VOM NIKOLAUS" "a0007;C" "a1001;DAS" "a9999;XX"
for %%i in (!hash!) DO ( REM echo %%i
set tmp=%%i set tmp=!tmp:~1,-1!
for /f "tokens=1,2 delims=;" %%a in ("!tmp!") do (
echo HASH:%%a WERT:%%b
set aa=%%a set bb=%%b
set !aa!=%%b echo ----- ) )
REM einzelnen Wert einladen set hashval=a123456 set val=MYVALUE
REM Trick-der hash ist lang und eindeutig, also machen wir eine variable daraus. set !hashval!=!val!
REM Abfragen der Werte
REM einfach, mit fixem hash, kommt wohl so nie vor set result=!a1001! echo !result!
REM tricky case set sss=a0009 REM werte !sss! aus zu dem hash REM in der subfunc wird dann wiederum !hash! zu dem wert der Variablen ausgewertet call :subfunc MEINWERT !sss! echo !MEINWERT!
set sss=a123456 call :subfunc MEINEVAR123 !sss! echo !MEINEVAR123!
pause goto :eof
REM Ohne diese Funktion sehe ich im Moment keine Möglichkeit die Werte abzufragen. REM man müsste so etwas wie echo !!hash!! schreiben, also zunächst REM !hash! auflösen nach a1991 und dann !a1991! auflösen nach WERT REM mit dieser subfunc gehts...
:subfunc set %1=!%2! goto :eof
|