batchanfaenger91
Goto Top

Variable von EIN.bat in ZWEI.bat aufrufen

Hi an alle,

meine Frage ist, ist es möglich eine gespeicherte Variable von ein Batch Datei in eine andere Batch Datei aufzurufen.

Ich habe ein Batch in dem die Standorte gezählt werden und in %count% gespeichert werden. Nun will ich das %count% in die neue Batch Datei aufrufen, ohne die lange Forschleife einzubauen.

Wäre hilfreich, wenn einer da mir weiterhelfen konnte.

Gruß

Content-Key: 288322

Url: https://administrator.de/contentid/288322

Printed on: April 25, 2024 at 05:04 o'clock

Member: Snowman25
Snowman25 Nov 13, 2015 at 13:11:36 (UTC)
Goto Top
Hallo @BatchAnfaenger91,

erstellst du count in der anderen Datei? Oder hast du da nur stehen SET count = 1519?
in beiden Fällen wäre es einfacher, wenn du count in eine eigene Datei schreibst, die du später wieder lesen kannst.

Gruß,
@Snowman25
Mitglied: 114757
114757 Nov 13, 2015 updated at 13:30:57 (UTC)
Goto Top
Moin.
Deine Variable kanst du ganz normal in deiner ersten Batch deklarieren und in der zweiten sofort abfragen wenn du deine zweite Batch mit
call "C:\deinezweitebatch.cmd"
aufrufst.

Andere Methode ist das Übergeben von Parametern an die zweite Batchdatei:
Erste Batch
@echo off
set "var=Hallo das ist ein Test"  
call "C:\zweiteBatch.cmd" "%var%"  
Zweite Batch
@echo off
echo Uebergebene Variable: %~1
Gruß jodel32
Member: BatchAnfaenger91
BatchAnfaenger91 Nov 16, 2015 at 15:46:13 (UTC)
Goto Top
Hi Snowman25

ja die Variable %count% erstelle ich in die andere Batch Datei. Da sind viele Variablen deklariert. Ich will nur eine Variable in die neue Batchfile aufrufen.

Gruß

BatchAnfaenger91
Member: BatchAnfaenger91
BatchAnfaenger91 Nov 16, 2015 at 15:48:54 (UTC)
Goto Top
Hi Jodel32

Danke erstnmal für diesen Ansatz, so habe ich es auch ausprobiert. Das Problem ist eher, dass ich nur eine Variable aufrufen will und so wie ich es sehe wird mit call ja die ganze Batchdatei aufgerufen. Gibt es eine Möglichkeit nur auf eine Variable zuzugreifen und die anderen zu ignoieren, da für das zweiteBatch die andere Variablen, bzw der Durchlauf der Forschleifen nicht relevant ist.

Gruß
Member: Snowman25
Solution Snowman25 Nov 16, 2015, updated at Nov 19, 2015 at 10:08:44 (UTC)
Goto Top
Hallo @BatchAnfaenger91,

nein, das geht so nicht.

Batch-Skripte sind "dumm". Die kannst du nur ausführen oder nicht ausführen. Etwas daraus extrahieren, ohne deine eigene Routine dafür zu schreiben, geht nicht.

Wie wäre es mit einem 3. Batch, welcher die Variablenwerte für die anderen 2 Batches hält?
Dann musst du nur am Anfang deiner Batches diese 3. Aufrufen, damit die Variablen gesetzt sind.

Gruß,
@Snowman25
Mitglied: 114757
Solution 114757 Nov 16, 2015, updated at Nov 19, 2015 at 10:08:41 (UTC)
Goto Top
setlocal und endlocal sind deine Freunde face-wink
http://ss64.com/nt/setlocal.html
Member: Frexed
Solution Frexed Nov 16, 2015, updated at Nov 19, 2015 at 10:08:38 (UTC)
Goto Top
Hi BatchAnfaenger91 und andere,


Du könntest eine For-Schleife erstellen z.B.:

for /f %%f in (Dateiname) do ( echo %%f )


Grüße Frexed
Member: BatchAnfaenger91
BatchAnfaenger91 Nov 19, 2015 at 10:08:23 (UTC)
Goto Top
Hi an alle und danke für eure Mühe,

ich denke auch das klappt nicht so einfach, habe zwar mit setlocal und endlocal (danke @114757) rumprobiert, bin aber nicht auf das richtige Ergebnis gekommen.

ich habe in die erste Batchdatei mehrere Parameter und Forschleifen und dachte mir, dass es vielleicht sinvoller wäre, die zweite Batch Datei mit der erste zu verknüpfen um die überschaulicher zu machen.

Aber ich komme auch mit den Ansatz von @Frexed voran.

danke erst mal, weitere Fragen gibt es im neuen Thread ;)

gruß