Lesen von Umgebungsvariablen aus der Datei in Windows Batch (cmd.exe)

8

Ich versuche, Variablen aus einer Batch-Datei für die spätere Verwendung im Batch-Skript, einem Java-Launcher, zu lesen. Ich hätte am liebsten das gleiche Format für die Einstellungsdatei auf allen Plattformen (Unix, Windows) und wäre auch eine gültige Java-Eigenschaftendatei. Das heißt, es sollte so aussehen:

%Vor%

Kann man solche Werte lesen wie in einem Unix-Shell-Skript? Das könnte etwa so aussehen:

%Vor%

Ich weiß, dass dies wahrscheinlich mit SET setting1=Value1 möglich ist, aber ich hätte lieber das gleiche Dateiformat für die Einstellungen auf allen Plattformen.

Zur Klarstellung: Ich muss dies in der Befehlszeile / Stapelumgebung tun, da ich auch Parameter festlegen muss, die nicht innerhalb der JVM geändert werden können, wie -Xmx oder -classpath.

    
Martin Probst 24.10.2008, 07:29
quelle

4 Antworten

15

Sie können dies in einer Batch-Datei wie folgt tun:

%Vor%

Dies liest eine Textdatei mit Zeichenfolgen wie "SETTING1 = VALUE1" und ruft SET auf, um sie als Umgebungsvariablen festzulegen.

Mit

setlocal / endlocal begrenzen Sie den Umfang der Umgebungsvariablen auf die Ausführung Ihrer Batch-Datei.

Der CMD-Befehlsprozessor ist ziemlich mächtig, allerdings mit einer ziemlich byzantinischen Syntax.

    
Joe 24.10.2008, 08:17
quelle
2

Sie können die Eigenschaftendatei als Parameter an ein Java-Programm übergeben (das später das Hauptprogramm starten kann). Und dann profitieren Sie vom Multi-Plattform-Paradigma.

    
call me Steve 24.10.2008 07:56
quelle
1

Es kann sinnvoll sein, nur bestimmte Variablen aus einer Eigenschaftendatei zu importieren (die Sie schon vorher kennen). In diesem Fall empfehle ich eine Funktion wie die folgende:

%Vor%

Was würde von call:parsePropertiesFile props.properties setting1 setting2 aufgerufen werden, um die Variablen setting1 und setting2

zu setzen     
Jared 01.06.2011 16:23
quelle
0
___ answer232813 ___

Sie können dies in einer Batch-Datei wie folgt tun:

%Vor%

Dies liest eine Textdatei mit Zeichenfolgen wie "SETTING1 = VALUE1" und ruft SET auf, um sie als Umgebungsvariablen festzulegen.

Mit

setlocal / endlocal begrenzen Sie den Umfang der Umgebungsvariablen auf die Ausführung Ihrer Batch-Datei.

Der CMD-Befehlsprozessor ist ziemlich mächtig, allerdings mit einer ziemlich byzantinischen Syntax.

    
___ qstnhdr ___ Lesen von Umgebungsvariablen aus der Datei in Windows Batch (cmd.exe) ___ qstntxt ___

Ich versuche, Variablen aus einer Batch-Datei für die spätere Verwendung im Batch-Skript, einem Java-Launcher, zu lesen. Ich hätte am liebsten das gleiche Format für die Einstellungsdatei auf allen Plattformen (Unix, Windows) und wäre auch eine gültige Java-Eigenschaftendatei. Das heißt, es sollte so aussehen:

%Vor%

Kann man solche Werte lesen wie in einem Unix-Shell-Skript? Das könnte etwa so aussehen:

%Vor%

Ich weiß, dass dies wahrscheinlich mit %code% möglich ist, aber ich hätte lieber das gleiche Dateiformat für die Einstellungen auf allen Plattformen.

Zur Klarstellung: Ich muss dies in der Befehlszeile / Stapelumgebung tun, da ich auch Parameter festlegen muss, die nicht innerhalb der JVM geändert werden können, wie -Xmx oder -classpath.

    
___ answer6204481 ___

Es kann sinnvoll sein, nur bestimmte Variablen aus einer Eigenschaftendatei zu importieren (die Sie schon vorher kennen). In diesem Fall empfehle ich eine Funktion wie die folgende:

%Vor%

Was würde von %code% aufgerufen werden, um die Variablen setting1 und setting2

zu setzen     
___ tag123windows ___ ALLGEMEINER WINDOWS-SUPPORT IST OFF-TOPIC. Support-Fragen können unter https://superuser.com gestellt werden. Windows ist ein von Microsoft entwickeltes Betriebssystem. Verwenden Sie dieses Tag nur, wenn sich Ihre Frage auf die Verwendung von Windows-APIs oder Windows-spezifischem Verhalten in Bezug auf Ihren Code bezieht, nicht nur, weil Sie Ihren Code unter Windows ausführen. ___ tag123java ___ Java (nicht zu verwechseln mit JavaScript oder JScript oder JS) ist eine universelle objektorientierte Programmiersprache, die für die Verwendung in Verbindung mit der Java Virtual Machine (JVM) entwickelt wurde. "Java-Plattform" ist der Name für ein Computersystem, auf dem Tools zum Entwickeln und Ausführen von Java-Programmen installiert sind. Verwenden Sie dieses Tag für Fragen, die sich auf die Java-Programmiersprache oder Java-Plattform-Tools beziehen. ___ answer235538 ​​___

Sie können auch von einem Java-Programm auf die Umgebungsvariablen des Betriebssystems zugreifen:

%Vor%     
___ tag123cmd ___ Eingabeaufforderung (ausführbarer Name cmd.exe) ist der von Microsoft bereitgestellte Befehlszeileninterpreter unter OS / 2, Windows CE und allen Windows-Betriebssystemen (einschließlich Windows NT, Windows 2000, Windows XP, Vista, 7, 8, 10 , Windows Server 2003, Server 2008, Server 2012 und Server 2016). ___ tag123umgebungsvariablen ___ Umgebungsvariablen sind eine Gruppe dynamischer benannter Werte, die sich auf die Art auswirken können, wie sich laufende Prozesse auf einem Computer verhalten. ___ tag123commandline ___ Eine Befehlszeile ist eine Zeichenfolge, die einem Befehlsinterpreter zugewiesen wird, der Aktionen wie das Ausführen von Programmen oder das Kopieren von Dateien angibt. Der Interpreter verarbeitet Befehlszeilen mit Escapes und Ersetzungen. ___ answer232788 ___

Sie können die Eigenschaftendatei als Parameter an ein Java-Programm übergeben (das später das Hauptprogramm starten kann). Und dann profitieren Sie vom Multi-Plattform-Paradigma.

    
___
micro 24.10.2008 22:55
quelle