cookie
Goto Top

Umgebungsvariable überprüfen

Hallo Zusammen.

Habe eine Frage. Und zwar möchte ich per Batch eine umgebungsvariable abfragen. wenn der wert stimmt soll nichts unternommen werden, ansonsten ändere ich sie mit setx. Das ändern funktioniert einwandfrei, leider komme ich auf keine Lösung.
Könnt ihr mir da helfen?

Vielen dank.

Gruss cookie

Content-ID: 12888

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

Ausgedruckt am: 24.11.2024 um 11:11 Uhr

Metzger-MCP
Metzger-MCP 24.05.2006 um 13:36:28 Uhr
Goto Top
%homedrive% ist eine Umgebungsvariable. meistens, in einem Standart System ist das C:.

Mit

if %homedrive% equ C: dir

wird verglichen ob die Variable den exacten Wert C: hat. Wenn das so ist, wird DIR ausgeführt sonst nicht.

Mfg Metzger
The-Warlord
The-Warlord 24.05.2006 um 13:47:05 Uhr
Goto Top
So???

@echo off
if %HOMEDRIVE%==H: (
set HOMEDRIVE=E:
echo Variable HOMEDRIVE wurde auf %HOMEDRIVE% geändert) ELSE (
echo "keine Änderung")
cookie
cookie 24.05.2006 um 14:39:34 Uhr
Goto Top
Danke, hat mir schon viel weitergeolfen. Nun stellt sich aber noch folgendes Problem, kann ich auch irgendwie abfragen ob die variable überhaupt existirert? denn, wenn sie nicht existiert bekomm ich einen Fehler zurück und der Script läuft nicht sauber durch. danke
Metzger-MCP
Metzger-MCP 24.05.2006 um 14:57:10 Uhr
Goto Top
So???

ja/nein face-smile


@echo off

Bis hier OK

if %HOMEDRIVE%==H: (

== geht dort nicht ! dafür gibt es den Begriff equ der Bedeutet gleich.
if %HOMEDRIVE% equ H: wenn es H: ist, dann ...
if not %HOMEDRIVE% equ H:
wenn es nicht H: ist , dann

set HOMEDRIVE=E:
echo Variable HOMEDRIVE wurde auf
%HOMEDRIVE% geändert) ELSE (
echo "keine Änderung")

Der Trift zu Zweig ist ok und der Trift nicht zu auch.

Es stellt sich natürlich die Frage, wie du Sie anwenden willst.

Mfg Metzger

P.s. für ein kongrete Lösung, solltest du mal posten was genau abgefragt wird und was genau dann passieren soll wenn was eintritt. Du kannst ja die Werte oder Variablen a,b,c,d,e nennen, so das du später nur die richtigen Werte einsetzen mußt.
Metzger-MCP
Metzger-MCP 24.05.2006 um 15:05:50 Uhr
Goto Top
Da gibt es den Wert Errorlevel.
Aber da muß ich auch erst die Windows Hilfe aufsuchen.

MFG Metzger
The-Warlord
The-Warlord 24.05.2006 um 15:12:01 Uhr
Goto Top
COOL! Danke fürs verbessern. "==" ist ein mathematischer Operator oder?
equ = equal = gleich vergleicht wahrscheinlich Zeichenketten
Metzger-MCP
Metzger-MCP 24.05.2006 um 16:15:32 Uhr
Goto Top
habe mal nachgeschaut bei mir habe ich da eine Abbruchlösung erstellen können face-smile.

If DEFINED variable befehl.

Beispiel einer Batchdatei anhand der Variable TMP face-smile


@echo off

If defined tmp goto 1

Echo.
Echo Variable ist nicht Vorhanden
Echo.

goto ende

:1

If not %tmp% equ C:\Temp goto 2

goto 3

:2
Echo tmp ist nicht C:\temp sondern %tmp%
set tmp=C:\Temp
echo Die Tempvariable ist gerade auf %tmp% gesetzt worden
goto ende

:3
Echo sie war schon auf %tmp% gesetzt gewesen

:ende