m@rtin 10 Geschrieben 1. Februar 2006 Melden Teilen Geschrieben 1. Februar 2006 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 Zitieren Link zu diesem Kommentar
zahni 562 Geschrieben 1. Februar 2006 Melden Teilen Geschrieben 1. Februar 2006 Was für eine Varibable meinst Du und wo und wann soll die übergeben werden ? -Zahni Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 1. Februar 2006 Melden Teilen Geschrieben 1. Februar 2006 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 Zitieren Link zu diesem Kommentar
m@rtin 10 Geschrieben 1. Februar 2006 Autor Melden Teilen Geschrieben 1. Februar 2006 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 ? Zitieren Link zu diesem Kommentar
klaus_b 10 Geschrieben 1. Februar 2006 Melden Teilen Geschrieben 1. Februar 2006 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 Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 1. Februar 2006 Melden Teilen Geschrieben 1. Februar 2006 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. Zitieren Link zu diesem Kommentar
m@rtin 10 Geschrieben 1. Februar 2006 Autor Melden Teilen Geschrieben 1. Februar 2006 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 (?). Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 1. Februar 2006 Melden Teilen Geschrieben 1. Februar 2006 http://www.bb-sys.de/bbshell.htm Das Codieren einer Lösung in einer (Skript)Spache ist eine Sache. Davor steht die exakte, auch sprachliche Definition des Problems, liegt das Erdenken der Lösung. Zitieren Link zu diesem Kommentar
klaus_b 10 Geschrieben 1. Februar 2006 Melden Teilen Geschrieben 1. Februar 2006 Hy m@rtin in der dos-Box "help" oder "help if" und alles wird erklärt ;) ciao Klaus Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 1. Februar 2006 Melden Teilen Geschrieben 1. Februar 2006 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? Zitieren Link zu diesem Kommentar
m@rtin 10 Geschrieben 1. Februar 2006 Autor Melden Teilen Geschrieben 1. Februar 2006 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 ;) Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 1. Februar 2006 Melden Teilen Geschrieben 1. Februar 2006 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. Zitieren Link zu diesem Kommentar
m@rtin 10 Geschrieben 1. Februar 2006 Autor Melden Teilen Geschrieben 1. Februar 2006 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 :) Zitieren Link zu diesem Kommentar
varnik 10 Geschrieben 1. Februar 2006 Melden Teilen Geschrieben 1. Februar 2006 ... @ lefgDu 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. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.