aus Batchdatei eine Variable auslesen
Hallo Zusammen,
Ich möchte aus einer Batchdatei eine Variable auslesen und in einer anderen Batchdatei die Variable verwenden, ist das möglich ?
Mit freundlichen Grüssen
Blueberry
Ich möchte aus einer Batchdatei eine Variable auslesen und in einer anderen Batchdatei die Variable verwenden, ist das möglich ?
Mit freundlichen Grüssen
Blueberry
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 98551
Url: https://administrator.de/forum/aus-batchdatei-eine-variable-auslesen-98551.html
Ausgedruckt am: 10.04.2025 um 17:04 Uhr
5 Kommentare
Neuester Kommentar
Hallo Blueberry!
Wie ist "aus einer Batchdatei eine Variable auslesen" zu verstehen?
Wenn Du in einer Batchdatei eine Variable setzt und vorher nicht "setlocal" verwendet hast, kann die danach aufgerufene Batchdatei diese Variable unmittelbar weiterverwenden. Mit der folgenden Schreibweise kannst Du die Variable sogar aus einem "setlocal"-Block "hinausretten":
Du könntest auch die zweite Batchdatei aus dem ersten Batch mit Übergabe des Variablenwertes aufrufen, also etwa:
und in "Batch2.cmd"
Als weitere Möglichkeit wäre natürlich das Zwischenspeichern in einer Textdatei zu nennen.
Ansonsten wäre es aber jedenfalls sinnvoll, etwas genauer (ev auch anhand eines Beispieles) zu beschreiben, was Du eigentlich vorhast.
Grüße
bastla
Wie ist "aus einer Batchdatei eine Variable auslesen" zu verstehen?
Wenn Du in einer Batchdatei eine Variable setzt und vorher nicht "setlocal" verwendet hast, kann die danach aufgerufene Batchdatei diese Variable unmittelbar weiterverwenden. Mit der folgenden Schreibweise kannst Du die Variable sogar aus einem "setlocal"-Block "hinausretten":
@echo off & setlocal
set "Variable=Ein Wert"
...
...
endlocal & set "Variable=%Variable%"
Du könntest auch die zweite Batchdatei aus dem ersten Batch mit Übergabe des Variablenwertes aufrufen, also etwa:
...
C:\Scripts\Batch2.cmd "%Variable%"
@echo off & setlocal
set "Variable=%~1"
Als weitere Möglichkeit wäre natürlich das Zwischenspeichern in einer Textdatei zu nennen.
Ansonsten wäre es aber jedenfalls sinnvoll, etwas genauer (ev auch anhand eines Beispieles) zu beschreiben, was Du eigentlich vorhast.
Grüße
bastla
Hallo Blueberry!
Falls also der Batch, mit welchem der Ordner erstellt werden soll (in meinem Beispiel "C:\Scripts\Batch2.cmd"), von dem Batch, der den Ordnernamen "kennt", aufgerufen wird, dann wäre das wie in meinem zweiten Beispiel oben umzusetzen, wobei "call" einfach vor den Aufruf gesetzt wird und dazu dient, dass, wenn "Batch2" fertig ist, es im aufrufenden Batch noch weitergeht, also etwa:
Für die Anwendung eines "goto" sehe ich lt Deiner derzeitigen Beschreibung allerdings noch keinen Sinn ...

Grüße
bastla
Falls also der Batch, mit welchem der Ordner erstellt werden soll (in meinem Beispiel "C:\Scripts\Batch2.cmd"), von dem Batch, der den Ordnernamen "kennt", aufgerufen wird, dann wäre das wie in meinem zweiten Beispiel oben umzusetzen, wobei "call" einfach vor den Aufruf gesetzt wird und dazu dient, dass, wenn "Batch2" fertig ist, es im aufrufenden Batch noch weitergeht, also etwa:
...
call C:\Scripts\Batch2.cmd "%Ordner"
echo Batch2 ist fertig, es geht hier wieder weiter!
Für die Anwendung eines "goto" sehe ich lt Deiner derzeitigen Beschreibung allerdings noch keinen Sinn ...
Du guckst sehr gut zu mir
Ich bin halt öfters hier in der Gegend ... Grüße
bastla
Hallo Sandro!
Ganz allgemein nur soviel: Du kannst einen Batch als Unterprogramm in einen anderen Batch "einbauen", wie Du es oben skizziert hast, wobei sich dieses Unterprogramm (wie ein externer Batch) mit Parametern aufrufen lässt, also zB
Im Unterprogramm ":GETDATE" kommen dann diese Parameter als %1 und %2 an.
Zu beachten wäre in Deinem Beispiel oben noch, dass zwischen Zeile 5 und 6 noch ein "goto :eof" oder der Sprung zu einem ev weiteren Programmteil nach Zeile 8 einzufügen wäre, da ansonsten das Unterprogamm ":GETDATE" nach dem "Backupzeugs" nochmals durchlaufen würde.
Grüße
bastla
kannst mich Sandro nennen
Danke - meistens verwende ich gewohnheitsmäßig den Nick ...Wenn evtl. DU verstehst was er meint, dann kannst du mir das evtl. erklären ???
Es wird sicher sinnvoller sein, wenn das Dein Lehrmeister macht - auch, damit er ein Feedback darüber erhält, dass seine Erklärungen nicht deutlich/ausführlich genug waren ...Ganz allgemein nur soviel: Du kannst einen Batch als Unterprogramm in einen anderen Batch "einbauen", wie Du es oben skizziert hast, wobei sich dieses Unterprogramm (wie ein externer Batch) mit Parametern aufrufen lässt, also zB
call :GETDATE Parameter1 Parameter2
Zu beachten wäre in Deinem Beispiel oben noch, dass zwischen Zeile 5 und 6 noch ein "goto :eof" oder der Sprung zu einem ev weiteren Programmteil nach Zeile 8 einzufügen wäre, da ansonsten das Unterprogamm ":GETDATE" nach dem "Backupzeugs" nochmals durchlaufen würde.
Grüße
bastla