Wie lautet das aktuelle Verzeichnis?

Letzte Änderung am 28. Juni 2018 by Christoph Jüngling

Gerade bei meinen jüngsten Kontakten mit “continuous integration” (“CI”) stand ich immer wieder vor der Frage, wo das Build-Script gerade läuft. Manche Programme erwarten nämlich den kompletten Pfad zu der Datei, die sie bearbeiten sollen. Die Kommandozeilenvariante von InnoSetup ist so ein Beispiel.

Daher in aller Kürze, wie ermittele ich das aktuelle Verzeichnis? Hier zwei Möglichkeiten mit Beispiel.

Ein simples “current directory” …

echo %cd%
C:\Projekte

Oder die etwas aufwändigere Methode …

echo %~dp0
C:\Projekte\

Bei dem angesprochenen InnoSetup würde das Kommando dann z.b. so aussehen (/Qp für den Quiet-Modus mit Fortschrittsbalken):

iscc %cd%\setup.iss /Qp

Ich bin darauf gestoßen, weil die Variable CI_PROJECT_DIR des Gitlab-Runners leider die Linux-Pfadschreibweise verwendet, weshalb eine Alternative vonnöten war. Originellerweise liefern die drei hier genannten Möglichkeiten unter dem Runner sogar drei unterschiedliche Ergebnisse:

CI_PROJECT_DIR = C:/Gitlab-Runner/builds/5a2a4df7/0/juengling/runner-test

cd = C:\Gitlab-Runner\builds\5a2a4df7\0\juengling\runner-test

~dp0 = C:\Users\GITLAB~1\AppData\Local\Temp\build_script571031151\ 

Siehe dazu Runner-Test.

Ähnliche Artikel:

Schreibe einen Kommentar

Deine Email-Adresse wird nicht veröffentlicht.

sechzehn + 14 =