Windows-Äquivalent von $ export

75

Ich versuche, einige Anweisungen zum Erstellen eines Verzeichnisses über die Befehlszeile zu befolgen. Die Anweisungen sind:

$ export PROJ_HOME=$HOME/proj/111
$ export PROJECT_BASEDIR=PROJ_HOME/exercises/ex1
$ mkdir -p $PROJ_HOME

Sind das Windows-Befehle? Gibt es Windows-Äquivalente?

user1154644
quelle
4
Nein, das sind * nix-Befehle. Das Windows-Äquivalent für mkdir ist mkdir.
Hans Passant

Antworten:

124

Um Ihr Befehlsskript im * nix-Stil in den Windows- / Befehlsstapelstil zu übersetzen, gehen Sie folgendermaßen vor:

SET PROJ_HOME=%USERPROFILE%/proj/111
SET PROJECT_BASEDIR=%PROJ_HOME%/exercises/ex1
mkdir "%PROJ_HOME%"

mkdir unter Windows hat keinen -p-Parameter: vom MKDIR /? Hilfe:

MKDIR erstellt bei Bedarf alle Zwischenverzeichnisse im Pfad.

Das ist im Grunde das, was mkdir -p (oder - Eltern für Puristen) auf * nix macht, wie aus dem Man Guide hervorgeht

rene
quelle
1
Scheint unter Windows 10 nicht zu funktionieren, ich musste es manuell tun.
Shadoweb
2
Gerade unter Windows 10 verifiziert und funktioniert für mich @Shadowbob, aber vielleicht haben Sie ein Leerzeichen in einem der Verzeichnisnamen?
Rene
Werden diese Umgebungsvariablen mit 'SET' in Windows permanent sein? Ich weiß, dass sie beim Export nur vorübergehend sind, wenn Sie sie nicht zu Ihrem ~ / .bashrc
user137717
3
@ user137717 sie sind temporär. Verwenden Sie den setxBefehl, wenn Sie diese Variablen zu den System- oder Benutzereinstellungen ändern / hinzufügen und beibehalten möchten.
Rene
6

In der Windows-Eingabeaufforderung gibt es keine entsprechende Anweisung für den Export. In Windows wird die Umgebung kopiert. Wenn Sie die Sitzung verlassen (von einer aufgerufenen Eingabeaufforderung oder von einer ausführbaren Datei, die eine Variable festlegt), geht die Variable in Windows verloren. Sie können es in der Benutzerregistrierung oder in der Maschinenregistrierung über setx festlegen, aber es wird nicht angezeigt, wenn Sie keine neue Eingabeaufforderung starten.

Bubi
quelle