Wessy
Erfahrenes Mitglied
Hallo alle beisammen,
ich habe hier ein total nerviges Problem. Ich möchte für einige Anwender in unserem Netzwerk ein spezielles Login-Script bereitstellen. Dieses soll manuell oder automatisch einen Standarddrucker setzen. Alles funktioniert soweit doch ich komme mit dem automatischen Start/Ablauf der Batchdatei nicht vorran. Ich möchte quasi als Übergabeparameter entweder "/? /d: Druckername /a: Aktion" angeben können. Da Drucker sehr häufig z.B. HP LJ 1320n genannt werden, muss ich dann die Übergabeparameter in Anführungsstriche packen. Hier kommt das Problem: Wie bekomme ich die Anführungsstriche später wieder aus dem Übergabeparameter raus?
Z.B übergibt mir der Aufruf test.bat /d:"HP LJ 1320n" dann nicht /d:HP LJ 1320n an %1 sondern /d:"HP LJ 1320n". Nun könnte ich (mache ich auch schon) die Variablen mit %variable:~1,2% entsprechend zurechtschneiden um die überflüssigen Teile vorn und hinten abzuschneiden. Aber der Benutzer kann ja den Aufruf auch ohne die Anführungszeichen starten. Mit dem IF-Befehl kann ich aber nicht abfragen oder ein " mit angegeben wurde da " als Steuerzeichen interpretiert wird. Was also nun?
Ich hoffe auf ein paar Tips oder Gedankenanstöße...
Mein Code der Batch:
ich habe hier ein total nerviges Problem. Ich möchte für einige Anwender in unserem Netzwerk ein spezielles Login-Script bereitstellen. Dieses soll manuell oder automatisch einen Standarddrucker setzen. Alles funktioniert soweit doch ich komme mit dem automatischen Start/Ablauf der Batchdatei nicht vorran. Ich möchte quasi als Übergabeparameter entweder "/? /d: Druckername /a: Aktion" angeben können. Da Drucker sehr häufig z.B. HP LJ 1320n genannt werden, muss ich dann die Übergabeparameter in Anführungsstriche packen. Hier kommt das Problem: Wie bekomme ich die Anführungsstriche später wieder aus dem Übergabeparameter raus?
Z.B übergibt mir der Aufruf test.bat /d:"HP LJ 1320n" dann nicht /d:HP LJ 1320n an %1 sondern /d:"HP LJ 1320n". Nun könnte ich (mache ich auch schon) die Variablen mit %variable:~1,2% entsprechend zurechtschneiden um die überflüssigen Teile vorn und hinten abzuschneiden. Aber der Benutzer kann ja den Aufruf auch ohne die Anführungszeichen starten. Mit dem IF-Befehl kann ich aber nicht abfragen oder ein " mit angegeben wurde da " als Steuerzeichen interpretiert wird. Was also nun?
Ich hoffe auf ein paar Tips oder Gedankenanstöße...
Mein Code der Batch:
PHP:
ECHO OFF
CLS
SET Hilfe=nein
SET Drucker=(leer)
SET Aktion=(leer)
ECHO Argument 1:%1
ECHO Argument 2:%2
ECHO Argument 3:%3
SET Comefrom=scanne-nach-argumenten-1
IF NOT "%1"=="" SET temp=%1
GOTO scanne-nach-argumenten
:scanne-nach-argumenten-1
SET Comefrom=scanne-nach-argumenten-2
IF NOT "%2"=="" SET temp=%2
GOTO scanne-nach-argumenten
:scanne-nach-argumenten-2
SET Comefrom=scanne-nach-argumenten-3
IF NOT "%3"=="" SET temp=%3
GOTO scanne-nach-argumenten
:scanne-nach-argumenten-3
GOTO skip-scanne-nach-argumenten
:scanne-nach-argumenten
IF "%temp:~1,1%"=="?" SET Hilfe=Ja
IF "%temp:~0,2%"=="/d" SET Drucker=%temp:~3%
IF "%temp:~0,2%"=="/a" SET Aktion=%temp:~3%
GOTO %Comefrom%
:skip-scanne-nach-argumenten
ECHO Hilfe: %Hilfe%
ECHO Drucker: %Drucker%
ECHO Aktion: %Aktion%
Zuletzt bearbeitet: