Jump to content

Batch mit parameter aus anderer Datei


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

Empfohlene Beiträge

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?

Link zu diesem Kommentar

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.

Link zu diesem Kommentar

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.

Link zu diesem Kommentar

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

Link zu diesem Kommentar

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?

Link zu diesem Kommentar

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

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...