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-Key: 12888

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

Printed on: April 19, 2024 at 06:04 o'clock

Member: Metzger-MCP
Metzger-MCP May 24, 2006 at 11:36:28 (UTC)
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
Member: The-Warlord
The-Warlord May 24, 2006 at 11:47:05 (UTC)
Goto Top
So???

@echo off
if %HOMEDRIVE%==H: (
set HOMEDRIVE=E:
echo Variable HOMEDRIVE wurde auf %HOMEDRIVE% geändert) ELSE (
echo "keine Änderung")
Member: cookie
cookie May 24, 2006 at 12:39:34 (UTC)
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
Member: Metzger-MCP
Metzger-MCP May 24, 2006 at 12:57:10 (UTC)
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.
Member: Metzger-MCP
Metzger-MCP May 24, 2006 at 13:05:50 (UTC)
Goto Top
Da gibt es den Wert Errorlevel.
Aber da muß ich auch erst die Windows Hilfe aufsuchen.

MFG Metzger
Member: The-Warlord
The-Warlord May 24, 2006 at 13:12:01 (UTC)
Goto Top
COOL! Danke fürs verbessern. "==" ist ein mathematischer Operator oder?
equ = equal = gleich vergleicht wahrscheinlich Zeichenketten
Member: Metzger-MCP
Metzger-MCP May 24, 2006 at 14:15:32 (UTC)
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