Jump to content

einfaches CMD-Skript, das nur eine Variable handlen soll


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen,

 

ich hab mal wieder ein Problem: ich surfe den ganzen Vormittag schon wie **** im Netz rumm, und finde keine anständige (oder auch nicht anständige) Doku zum CMD-Skript schreiben.

 

Pseudocode soll das Teil eigentlich nur folgendes machen:

 

beim ausführen des Skripts kann eine Variable übergeben werden, muss aber nicht ! Diese Variable besteht aus einem, oder mehreren Wörtern, muss also in Anführungszeichen geschrieben sein. Beispiel "Hallo Welt"

 

Nun soll das Skript unterscheiden, ist die Variable vorhanden, wenn ja geb sie zB aus, wenn nein, schreib hin dass die Variable nicht gesetzt ist.

 

Kann mri vllt jemand helfen ? Hab schon mit if-else probiert, aber der springt mir dauernd mit irgendwas entgegen, und ich kanns mir überhaupt nimmer erklären was wie geht ...

 

Grüße, Martin

Link zu diesem Kommentar

Hallo zahni,

 

der Aufruf soll sein:

c:\test "Hallo Welt"

 

also das Skript test.cmd bekommt "Hallo Welt" als eine Variable %1 übergeben.

 

im Skript soll mit der Variable, abhängig davon ob sie gesetzt ist, ausgegeben werden, oder anstatt der Variable eine Fehlermeldung ...

 

Hoffnetlich ists nun ein wenig klarer geworden ?

 

Hallo lefg,

 

die Art der Variablendeklaration funktioniert aber nicht, wenn ich die Variable einem test.cmd Skript übergeben will, oder ?

Link zu diesem Kommentar

meinst du vielleicht so was?

 

<--

@echo off

 

set var=%1

IF NOT DEFINED var goto noVar

 

echo %var%

echo.

goto end

 

:noVar

echo kein Wert übergeben.

echo.

goto end

 

:end

pause

exit

-->

 

das Script überprüft ob ein Wert übergeben wurde z.B.: test.cmd "12 34"

und giebt diesen zurück.

Falls kein Wert übergeben wirde wird das Script beendet.

 

ciao

Klaus

Link zu diesem Kommentar

Ahne ich es, du willst beim Programmaufrauf einen Parameter angeben und diesen in einer Batch weiterverwenden?

 

c:\>test.bat Parameter

 

c:\>test.bat Hallo World

 

Und nun ahne ich es, Halla World sind zwei Parameter, deshalb sollen sie in Anführungszeichen "Hallo World"

 

Ich muss gestehen, ich habe das so noch nicht probiert. Für sowas ist die Parameterübergabe auch nicht gebaut worden.

Link zu diesem Kommentar

hi klaus_b

 

genau diesen Sinn soll das Skript haben.

herzlichen Dank :) !!!

 

nun hab ich mal gelernt, dass es ein DEFINED gibt :).

 

@ all

gibt es irgendwo Quellen im Internet, die sich mit solchen Skripten auseinandersetzen, und von denen man das lernen kann ?

 

Viele Grüße, Martin

 

edit: @ lefg

Du hast recht, nur sollte es keine .bat sein, sondern eine .cmd ... meines Wissens nach hat man mit denen ja mehr Möglichkeiten (?).

Link zu diesem Kommentar
... @ lefg

Du hast recht, nur sollte es keine .bat sein, sondern eine .cmd ... meines Wissens nach hat man mit denen ja mehr Möglichkeiten (?).

Die Erweiterung spielt erst dann eine Rolle, wenn man dieses Skript und einem DOS-basierten Betriebssystem ausführen möchte, da diese nur .bat verstehen. Für NT-Platformen ist es egal, ob .bat bzw. .cmd ausgeführt wird. Vergiss es aber nicht, dass die mitgeliefrte Windows-Programme häufig unterschiedliche Optionen haben. Ich meine, dass jede nächste Betriebssytem-Version die Optionen der Befehle erweitert.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...