vbc umgebungsvariablen
Geizhals » Forum » Programmierung » vbc umgebungsvariablen (7 Beiträge, 291 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
.
Re: vbc umgebungsvariablen
28.03.2005, 03:27:29
Hi!

Umgebungsvariablen sind universelle "Wertespeicher".

Grundsätzlich unterscheidet man zwischen Umgebungsvariablen, die für das gesamte System und jeden User gültig sind, die sog. "Systemvariablen", und die "Benutzervariablen", die nur für den aktuell angemeldeten User gültig sind.

Windows verwendet Umgebungsvariablen, die dort bestimmte Namen haben und auch bestimmte Funktionen erfüllen. So gibt es zB. die Umgebungsvariable "windir", die immer auf das Windows-Verzeichnis zeigt, die Variable "Computername", die den Wert des Namens Deines Rechners hat und - das ist die für Dich entscheidende - die Variable "Path", in der sämtliche Pfade abgelegt sind, in denen Windows nach ausführbaren Dateien und DLLs sucht, wenn der volle Pfad zu diesen nicht angegeben wird.
Das sind alles Systemvariablen.

Du kannst Umgebungsvariablen aber auch selbst definieren und ihnen dann beliebige Werte zuweisen und sie als Benutzer- oder Systemvariablen definieren, je nachdem, welche Funktion sie erfüllen sollen.

In Deinem Fall kann Windows die Datei vbc.exe nicht finden, da das Verzeichnis, in dem sie liegt nicht angegeben wurde, das aktuelle Verzeichnis die Datei nicht beinhaltet, und das Verzeichnis, in dem sie sich befindet, nicht im Pfad (=Path-Variable) steht.

Um jetzt das Verzeichnis zum Pfad hinzuzufügen, musst Du folgendes tun (ich hoffe, die Bezeichnungen stimmen alle, hab kein XP):
Arbeitsplatz -> rechte Maustaste -> Eigenschaften -> Registerkarte "Erweitert", Button "Umgebungsvariablen" unten anklicken, dann im Fenster "Umgebungsvariablen" bei "Systemvariablen" den Eintrag "Path" finden und doppelklicken.

Nun geht ein Fenster auf, in dem oben "Name der Variablen" und darunter "Wert der Variablen" steht. Bei Name steht "Path", das ist OK, bei "Wert" wirst Du den kompletten Eintrag nicht ohne die Cursortasten verwenden zu müssen sehen. Da dort mehr als ein Wert zugewiesen wird, werden die einzelnen Werte durch Semikola (;) getrennt. Wichtig ist allerdings, dass vor und nach einem Semikolon kein Abstand ist.

Jedenfalls gehört unter "Wert" auch der Eintrag "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322" hinein. Zu diesem Zweck also am Ende des Eintrags ein Semikolon setzen und danach "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322" hinschreiben. Zur Sicherheit am Ende auch noch ein Semikolon setzen, dann mit OK bestätigen, die zwei folgenden Fenster auch mit OK beenden, und damit hast Du die Variable erweitert.

Der neue Eintrag ist ab sofort gültig, Du musst keinen Neustart machen. Nur Eingabeaufforderungsfenster, die währenddessen offen gewesen sein sollten, haben die Änderung noch nicht mitbekommen. Daher mit "exit" raus und eine neue aufgemacht.

Um zu überprüfen, ob das auch geklappt hat, kann man in der Eingabeaufforderung mit dem Befehl "set" die Werte aller Umgebungsvariablen abrufen. Solltest Du "set" ohne Angabe aufrufen werden alle definierten Variablen zurückgegeben, gibst Du eine Variable oder auch nur einen Teil davon an werden nur jene zurückgegeben, die den Kriterien entsprechen. Mit "set p" bekommst Du also außer Path noch eine Menge anderer Variablen zurück, gibst Du "set path" ein so wird nur genau der Wert dieser einen Variable zurückgeliefert. Dort sollte jetzt auch ganz am Ende der von Dir erstellte Eintrag sein.

Von nun an kannst Du von überall die Datei "vbc.exe" starten, auch ohne im Verzeichnis zu sein, in dem sich diese Datei wirklich befindet.

Ich hoffe, das war soweit verständlich.

greetz

glockman B-)

- Ich bin ein Geek und steh dazu -
Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
...
Re(3): vbc umgebungsvariablen
29.03.2005, 12:29:14
Freut mich, dass ich helfen konnte.

Und was mir auch noch eingefallen ist, was ich beim ersten Mal noch hätte erwähnen können:
Bei der Path-Variablen wird auch die Verwendung einer Umgebungsvariablen sichtbar - Systemroot. Bei der handelt es sich wie bei windir um das Windows-Stammverzeichnis.

Das Einsatzgebiet hier: die Umgebungsvariable wird, wenn sie von Prozentzeichen umschlossen ist, vom System ausgewertet und in den eigentlichen Wert verwandelt.

Das bedeutet, dass Du zB. mit "cd /d %systemroot%" von der Kommandozeile weg, egal in welchem Verzeichnis und/oder Laufwerk Du grad bist, ins Windows-Stammverzeichnis wechslen kannst. Oder mit "copy [Dateiname] %temp%" eine Datei ins Temp-Verzeichnis kopieren kannst ohne Dich drum kümmern zu müssen, wo das denn jetzt wirklich ist.

Und noch ein Hinweis: wenn Du die selben Umgebungsvariablen sowohl für den User als auch für das System hast, so überschreiben die User-Einträge die System-Einträge. Die Ausnahme ist die Path-Variable, bei welcher der User-Eintrag an den System-Eintrag angehängt wird.

Zwei interessante Sonderfälle gibt es auch noch: Du kannst mit %date% und %time% das aktuelle Datum und die Uhrzeit abrufen. Diese Variablen sind zwar nicht explizit aufgelistet, werden vom System aber dynamisch angeboten.

Zusätzlich gibt es noch eine Reihe anderer, recht interessant sind noch die Variablen %cd%, die das aktuelle Verzeichnis inkl. Laufwerksbezeichnung zurückgibt sowie %errorlevel%, welche den Rückgabewert eines gerade beendeten Programms beinhaltet.
Diese wird zumeist in Stapelverarbeitungsdateien verwendet, um das weitere Vorgehen zu bestimmen (bei %errorlevel% == "0" Erfolg, sonst Fehlermeldung).

Eine Auflistung der von XP angebotenen Variablen findest Du unter http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/ntcmds_shelloverview.mspx

Und falls Du vor hast, Umgebungsvariablen aus Deinen Programmen heraus zu nutzen, so ist das auch kein Problem; im Normalfall bietet die Programmiersprache recht einfache Mittel, diese abzurufen. Im Fall von Visual Basic (ich nehme an, dass Du in VB arbeitest) wäre das die Environ-Funktion.

greetz

glockman B-)

- Ich bin ein Geek und steh dazu -
Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung