Den tatsächlichen Pfad des aktuellen Verzeichnisses abrufen, wenn Symlinks verwendet werden

326
Daniele Torino

Ich habe gerade herausgefunden, dass mein Build auf dem Build-Server (Windows 2008 R2) fehlschlägt, da sich der Arbeitsbereich mit Symlinks auf einem anderen Laufwerk befindet.

Der Build-Pfad führt C:\Program Files (x86)\Jenkins\jobs\MyProjectTestBuild\workspaceaber tatsächlich dazu, d:\Jenkins\jobs\MyProjectTestBuild\workspace\da C:\Program Files (x86)\Jenkins\jobsein Symlink zu steht D:\Jenkins\jobs.

Aus welchem ​​Grund auch immer, mein Build wird nie beendet, wenn von dort ausgeführt wird C:\Program Files (x86)\Jenkins\jobs\MyProjectTestBuild\workspace.

Die Frage ist also: Wie kann ich den tatsächlichen Speicherort des aktuellen Verzeichnisses herausfinden, damit ich ihn vor dem Ausführen des Build-Skripts in das CD-ROM-Verzeichnis schreiben kann ?


Bearbeiten:

Ich weiß, wie man die Position eines symbolischen Links überprüft. Das ist nicht die Frage. Ich möchte wissen, wo sich der tatsächliche Ort befindet. Egal, ob in der Pfadkette Symbollinks vorhanden sind.

0
Das ist nicht die gleiche Frage. Ich weiß, wo ein symbolischer Link steht. Ich möchte unter Berücksichtigung des aktuellen Pfads wissen, was der wirkliche Ort ist. Egal ob sich in der Pfadkette Symbollinks befinden. Ich denke, Linux hat so etwas wie einen "Realpath" -Befehl. Aber wie mache ich das unter Windows? Daniele Torino vor 6 Jahren 0
Ich lese dies und denke immer wieder "ja, genau das wollen Sie". Wo ein symbolischer Link verweist, ist der "echte Pfad". Ich denke, das denken auch andere. Vielleicht wird eine weitere Erklärung klarer machen, wie sich das von Ihrem Wunsch unterscheidet. music2myear vor 6 Jahren 1
Nein, ich glaube, ich war ziemlich klar. Der symbolische Link verweist auf einen Ordner, der nur Teil des realen Pfads ist. Der Link befindet sich unter "C: \ Programme (x86) \ Jenkins \ jobs" und zeigt auf "D: \ Jenkins \ jobs". Der aktuelle Pfad lautet "C: \ Programme (x86) \ Jenkins \ jobs \ MyProjectTestBuild \ workspace". Der eigentliche Pfad ist `D: \ Jenkins \ jobs \ MyProjectTestBuild \ workspace`. Ich habe das Problem derzeit gelöst, indem ich eine hartcodierte "cd" für das eigentliche Build-Verzeichnis erstellt habe, aber ich würde eine allgemeinere Lösung bevorzugen. Vorzugsweise eine, die nicht kaputt geht, wenn jemand `MyProjectTestBuild` umbenennt. Daniele Torino vor 6 Jahren 0

0 Antworten auf die Frage