jucain 10 Geschrieben 4. April 2009 Melden Teilen Geschrieben 4. April 2009 Ich versuche gerade mir ein kleines Script zu erstellen, nur will es nicht so wie ich mir das vorgestellt habe. Ich habe eine Bat datei mit dem Inhalt start test.exe [hier die Parameter] Nun möchte ich, dass die Batdatei beim Ausführen zusätzlich noch Bezug auf eine andere Datei nimmt. In dieser anderen Datei steht dann noch ein zusätzlicher Parameter. Ich möchte in dieser zweiten Bat Datei nicht den Pfad, bzw. den Exe Namen sehen. Ich habe das mit der Funktion Call test.bat gemacht. Leider nimmt er dann den Parameter nicht an. Logischerweise müsste das ganze dann so aussehen, damits klappen würde; start test.exe [hier die Parameter call test.bat] Da es aber im Parameter mit drinn ist, wird es nicht ausgeführt sondern wird als Parameterwert genommen. Weiss Jemand wie ich das am besten machen kann? Zitieren Link zu diesem Kommentar
BloodySword 10 Geschrieben 4. April 2009 Melden Teilen Geschrieben 4. April 2009 Ich weiß nicht genau was du tun willst. Habe es nicht so ganz verstanden. Parameter in Batch kann man wie folgt auswerten: Die Paramteter werden alle in %x gespeichert wobei x der Index des Parameters ist. Will man alle Parameter nehmen, nutzt man %* dafür. Beispiel: createimage.bat start nfgdump dump /P /G /D=%1 /F=%2 /O=gz /E=9 /L=%3 Testen: createimage.bat c: d:\recovery\image.imggz 1024m Erstellt also ein Festplattenabbild von c: mit GZIP kompression Level 9, Datenträgeraufteilung 1024MB in d:\recovery\image.imggz. Pagefile.sys wird ignoriert. Zitieren Link zu diesem Kommentar
jucain 10 Geschrieben 4. April 2009 Autor Melden Teilen Geschrieben 4. April 2009 ok ich glaub des ist gar nicht wonach ich suche ich verdeutliche das mal ein bisschen ich habe eine bat Datei. Diese Datei hat den Inhalt start test.exe [Parameter] Das heisst er startet die Datei test.exe zugleich mit den Parametern die dann halt dort stehn. Sehr bekanntes Beispiel dazu, ein Computergame. In diesem Fall könnte man zum Beispiel als Parameter dedicated 2 machen, dass halt nicht das Spiel startet, sondern ein Dezidierter Server. Das Script wo ich schreibe ist danach auf eine Homepage zugänglich. Und dort sollt man halt die Batdatei editieren können (Dieses Script habe ich schon). Das Problem dabei ist, wenn ich die Bat Datei direkt angebe zum editieren, kann man ja alles editieren, also auch den Pfad der Datei. Das sollte aber so nicht sein. Deswegen versuche ich, dass die Parameter für den Startbefehl aus einer anderen Datei herkommen. Dies wäre dann die test.bat wo halt die Parameter drinn sind und die kann man dann auch editieren. So, nun wie stelle ich eine Verbindung her zwischen zwei Batdateien? Mit der Funktion Call. Leider funktioniert das aber nicht, da nun unabhängige 2 Bat Dateien exisiteren. Ich versuche einen Bezug herzustellen, dass die eine Batdatei sagt was gestartet werden muss und die zweite Batdatei sagt mit welchem Parameter muss der Befehl in der Ersten batdatei ausgeführt werden. Ich hoffe so ist es nun offensichtlich was ich versuche. Zitieren Link zu diesem Kommentar
BloodySword 10 Geschrieben 4. April 2009 Melden Teilen Geschrieben 4. April 2009 Hast du es schon mit Variablen versucht? Bat1: start test.exe %param% Bat2: set param=--delete-file c:\affe.dat call bat1.bat Zitieren Link zu diesem Kommentar
RobertCraven 10 Geschrieben 4. April 2009 Melden Teilen Geschrieben 4. April 2009 Hallo, ich weiss jetzt nicht ob ich es richtig verstanden habe, aber mit diesem Aufruf kannst Du Deine EXE-Datei mit festen Parametern starten und in einer zusätzlichen Textdatei schreibst Du die "besonderen" Parameter rein. echo off for /f "delims=; " %%i in (optionen.txt) do test.exe [Deine festen Optionen] %%i zur Erklärung: (optionen.txt) ist die Textdatei wo die Du Deine spezielen Paramter pflegst. Diese müssen in einer Zeile stehen und mit ";" getrennt werden delim=; <-- dies ist das Trennzeichen wie eben erwähnt in der Parameter Datei do blablabla; do führ einfach den Befehl aus mit den Inhalten aus der Datei. Falls Du den Aufruf einfach über die DOS Box machst, darfst Du bei der Variabel nur ein %-Zeichen nehmen. Als Batchaufruf benötigt man zwei. Ist vielleicht etwas übertrieben, aber sollte so gehen. Normalerweise wird "for" für Schleifenoperationen verwendet. Z.Bsp. Importieren mehrer User mit Parametern. Grüße Robert Craven Zitieren Link zu diesem Kommentar
jucain 10 Geschrieben 4. April 2009 Autor Melden Teilen Geschrieben 4. April 2009 Das ist super, so wie ich das sehe ist es genau das was ich suche. Nur irgendwie kapiere ich noch nicht ganz was in die option.txt rein muss. Muss ich dort einfach den Parameter eingeben den ich möchte? Oder auch mit den Klammern? Weil bei mir kommt dann nur immer die Hälfte des Parameters immer nur +set und der Rest fehlt. Könntest Du vielleicht ein konkretes Beispiel geben? Zitieren Link zu diesem Kommentar
RobertCraven 10 Geschrieben 5. April 2009 Melden Teilen Geschrieben 5. April 2009 Hi, die optionen.txt ist eine Textdatei. Kannst diese auch gerne anders bennen. Masst dann allerdings in der Batch ebenfalls den Dateinamen anpassen. Du kannst auch die Datei an einem anderem Ordner abspeichern. Wenn Du das machst sieht es dann der Aufruf in der Batch so aus: echo off for /f "delims=; " %%i in (C:\DeinOrdner\DeineDatei.txt) do test.exe [Deine festen Optionen] %%i In der Datei schreibst Du einfach die Optionen rein, die Du benötigst. Sieht dann so aus, wenn Du drei Optionswerte hast: Wert1;Wert2 mit Leerzeile;letzter Wert; Sollte so passen. Aber Du kannst ja mal den Wert Posten, welchen Du in der Datei haben möchtest. Ist dann vielleicht einfacher. Grüße Zitieren Link zu diesem Kommentar
jucain 10 Geschrieben 5. April 2009 Autor Melden Teilen Geschrieben 5. April 2009 vielen Dank 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.