Hilfe bei einem Batch

Hallo,

ich habe mir folgenden Batch (4 Aufruf Parameter) gestrickt:
(die Aufruf Parameter ändern sich durch eine Excel VBA Routine)
Aufruf: test.cmd u:\test GruppeA BenutzerA ZugriffA

Inhalt test.cmd

if %4=ZuriffA GOTO A
if %4=ZuriffB GOTO B
if %4=ZuriffC GOTO C
if %4=ZuriffD GOTO D
GOTO fehler

A

ECHO %Date% %Time% %4 für %2 >> %1\log\info.log
SET zugriff=AnwenderZugriff
GOTO ENDE

B

ECHO %Date% %Time% %4 für %2 >> %1\log\info.log
SET zugriff=AnwenderRolle
GOTO ENDE

C

ECHO %Date% %Time% %4 für %2 >> %1\log\info.log
SET zugriff=AnwenderKonfig
GOTO ENDE

D

ECHO %Date% %Time% %4 für %2 >> %1\log\info.log
SET zugriff=Sonsiges
GOTO ENDE

ENDE

ECHO %Date% %Time% Sprungmarke ENDE >> %1\log\info.log
ECHO %2 %3 %zugriff% >> %1\inhalt.txt
exit


Soweit so gut…Diese Script (in ähnlicher Form) in Verb. mit Excel nutze ich, um alle User je Netzgruppe auszulesen und eine datei zu erstellen, mit der schnell eine ausversehen gelöschte Netzgruppe (kommt hin und wieder vor) via der Datei herstellen lässt.
Das klappt auch alle soweit…
Ich bräuchte nur eine genauere Unterteilung bei GruppeA z.B. wenn %4 ist wie „Prox*“ (es gibt nämlich ProxyA, ProxyB, ProxyC…), aber ich finde nur vergleichsorperatoren wie %4==„Proxy“ … aber nicht so ähnlichen halt…

gibts da eine Lösung??

hallo

also, ich vermute mal, dass du zumindest windows xp einsetzt. da gibt es schon ein paar nette erweiterungen in der cmd.exe:

die vergleichoperatoren GTR (grösser als) und LSS (kleiner als) funktionieren nicht nur mit numerischen ausdrücken sondern auch mit strings.

sowas funktioniert also:

set PARAM=hallo2
if "%PARAM%" GTR "hallo" goto weiter

einfach mal in der dosbox „help if“ eingeben!

allerdings ist im obigen beispiel auch „i“ grösser als „hallo“, damit noch nicht sicher genug. damit kommt die erweiterung im set-kommando ins spiel:

@echo off
set PARAM=%1
set TMP=%PARAM:~0,5%
set SUF=%PARAM:~-1%

if "%TMP%" NEQ "hallo" goto falsch
if "%PARAM%" GTR "hallo" goto weiter
echo parameter ist hallo
goto ende


> weiter

echo parameter beginn mit hallo und endet mit %SUF%
goto ende


> falsch

echo parameter hat nix mit hallo zu tun


> ende

auch hier hilft ein „help set“ schon mal weiter

ach ja, wichtig: die textsuche in variablen mit dem set-kommando funktioniert nicht mit den parametern „also %1“. du musst also auf jeden fall zuerst den parameter in eine eigene variable schreiben.

ev. hilft dir das ja schon mal…

lg
erwin