Diskussion:Batch-Programmierung: Erweiterungen unter Windows NT

Aus Wikibooks
Zur Navigation springen Zur Suche springen

Habe eben die Umleitung einer Ausgabe in eine Variable eingefügt, diese Methode ist vorallem hilfreich, wenn z.B. IF-Abfragen durchgeführt werden sollen, das Beispiel sollte möglichst einfach sein, ich gebe aber zu, daß hier der eigendliche Vorteil der Umleitung nicht deutlich wird.
Deshalb hier noch ein weiteres Beispiel:

@ECHO OFF
REM Das Programm grep.exe muß im Suchpfad vorhanden sein.
SET PF=pattern.tmp
ECHO.
REM --- Export Example file ------------------------------------------------------------------------
ECHO CONVERGENCE CS-ADL03 SECANT> test.txt 
ECHO      BLOCK-OPTION CONV-LEVEL=3 TERM-LEVEL=3 VAR-LEVEL=3  ^&>> test.txt
ECHO          TVAR-LEVEL=3 >> test.txt
ECHO      SPEC DS-ADL03 >> test.txt
ECHO      PARAM MAXIT=35 MAX-STEP-SIZ=0.1 XTOL=1E-010 BRACKET=YES  ^&>> test.txt
ECHO          XFINAL=XLAST VARITERHIST=YES >> test.txt
ECHO READ-VARS SPMEA3 FXAD03 USMESP >> test.txt
ECHO WRITE-VARS PSWTDA PSMEDA PSMEA3 PSWTA3 ZIDSPM SPMEA1  ^&>> test.txt
ECHO            SPWTA1 >> test.txt
ECHO TEAR-VARS TEAR-VAR=SPMEA1 >> test.txt
ECHO TEAR-VARS TEAR-VAR=SPWTA1 >> test.txt
ECHO BLOCK-OPTION TVAR-LEVEL=3 >> test.txt
ECHO greps: "=NaN" and "= NaN">> test.txt
ECHO ^(m^) >> test.txt       
REM ------------------------------------------------------------------------------------------------
:: Redirect Output to Variable via file 
ECHO \^(XFINAL=[A-Z]{4,8}\^)>%PF%
ECHO type %PF%
type %PF%
grep -o -i -E --file=%PF% test.txt> _.tmp
ECHO type _.tmp
type _.tmp
:: Redirect File content in variable:
SET /P _tmp2=<_.tmp
ECHO a.^) _tmp2: ###%_tmp2%###
:: Delete Spaces:
SET _tmp2=%_tmp2: =%
ECHO b.^) _tmp2: ###%_tmp2%###
IF "%_tmp2%"=="XFINAL=XLAST" ( ECHO Final X: Of last cycle
) ELSE ( ECHO XFINAL is different from Value XLAST )

Grüße

Stefan --134.60.98.67 17:45, 2. Feb. 2009 (CET)