Jump to content
Sign in to follow this  
m@rtin

einfaches CMD-Skript, das nur eine Variable handlen soll

Recommended Posts

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

Share this post


Link to post
Share on other sites

Hallo Martin,

 

eine temporäre Variable wird an der Kommandzeile, in einer Batch erzeugt mit:

set var=Hallo World
echo %var%

siehe set /?

siehe Hilfe

siehe Google

 

Eine "globale" Variable ist mit setx zu erstellen.

 

Viel Erfolg

 

Edgar

Share this post


Link to post
Share on other sites

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 ?

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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 (?).

Share this post


Link to post
Share on other sites
Du hast recht, nur sollte es keine .bat sein, sondern eine .cmd ... meines Wissens nach hat man mit denen ja mehr Möglichkeiten (?).
Welche denn?

Share this post


Link to post
Share on other sites

ich dachte das mal irgendwo gelesen zu haben, aber wie Du schon gesehen hast, ich bin da bei weitem kein damit vertrauter User. In sofern ziehe ich, aufgrund Deiner Frage, diese Aussage glaub ich zurück ;)

Share this post


Link to post
Share on other sites

Ich weiss doch auch nicht alles, mir wächst kein Gras aus der Tasche. ;) .

 

Ich kann immer noch etwas dazulernen.

 

Ich habe deshalb dazu einen Thread aufgemacht. Schauen wir mal auf das Ergebnis.

Share this post


Link to post
Share on other sites

naja, im Zweifel weißt Du aber mehr als ich, was die Materie angeht. In sofern zählt für mich Deine Aussage mehr als mein im Zweifel irgendwo angelesenes Wissen, oder Scheinwissen ;)

 

bin gespannt was rauskommt, ich werd den Thread jedenfalls mitverfolgen :)

Share this post


Link to post
Share on other sites
... @ 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.

Share this post


Link to post
Share on other sites
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...