Wie lautet das aktuelle Verzeichnis?

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.


SmallInvoice Logo

Ähnliche Artikel:

AuthorChristoph Jüngling

Selbständiger Softwareentwickler und Seminarleiter

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

8 + vier =