Executable Pfad richtig angeben

Seehawk

Lieutenant
Registriert
Apr. 2012
Beiträge
954
Hallo,

könnte mir jemand helfen und sagen wie der Pfad lautet um das Programm da auszuführen wo auch die EXE gestartet wird? Ich möchte nicht einen absoluten Pfad angeben sondern nur da etwas speichern wo auch die EXE ist, die kann nämlich überall sein.

Das kenne ich aber es gibt doch bestimmt einen Befehl dafür.

%Program Files%
%AppData%\%AppID%\Data

Geht um ein portables Programm.

Danke
 
Die %Program Files% Dinger sind Variablen, die von Windows dann in absolute Pfade übersetzten werden.
Hört sich irgendwie wie ein XY-Problem an. Was willst du genau erreichen? Wenn du relativ zu deiner aktuellen Position was aufrufen wilslt, gibt es auch relative Pfade:
https://docs.microsoft.com/de-de/dotnet/standard/io/file-path-formats
 
  • Gefällt mir
Reaktionen: Raijin, Bagbag, tollertyp und eine weitere Person
Seehawk schrieb:
Geht um ein portables Programm.

Laufwerksbuchstabe:\Pfad-des-portablen-Programmes\ausfuehrbare.exe

Wenn Buchstabe und Pfad immer gleich sind koennstest Du diese Angaben in die Umgebungsvariablen setzen. Dann waere nur die Angabe der EXE noetig.
 
In Batch-Dateien verweist z.B. %~dp0 auf das Ausführungsverzeichnis.
 
  • Gefällt mir
Reaktionen: BAGZZlash und Seehawk
BFF schrieb:
Wenn Buchstabe und Pfad immer gleich sind koennstest Du diese Angaben in die Umgebungsvariablen setzen
Das ist es ja was ich nicht will, es ist ja auch schwer zu sagen was ich möchte wenn das was ich schreibe nicht so verstanden wird das man mir helfen kann, den mehr Knowhow hab ich dazu dann auch nicht :p

Nolag schrieb:
In Batch-Dateien verweist z.B. %~dp0 auf das Ausführungsverzeichnis.
Ja genau so etwas aber das klappt leider nicht nicht :(


%AppData% - bringt mich immer zu C:\Users\Admin\AppData\Roaming

aber gibt es nicht so etwas wie:

%ExecutableFilePath% - etwas speichern an der stelle wo die exe die ich starte liegt, ohne absolute Pfadangabe weil die ja variieren kann.

mehr kann ich auch leider auch nicht helfen, muß ich dann wohl aufgeben :)

danke trotzdem
 
Seehawk schrieb:
aber gibt es nicht so etwas wie:

%ExecutableFilePath% -

Wie soll das denn funktionieren? Eine .exe. kann überall liegen. Auch Deine Portable App kann überall liegen.

%xx% und andere hier genannte Orte sind Systemorte. Die bei jedem Windows vorhanden sind.

Vielleicht einfach mal sagen was der Stand der Dinge ist und was Du erreichen willst.

So ergeben deine Fragen keinen Sinn und Antworten dementsprechend unmöglich.
 
  • Gefällt mir
Reaktionen: BFF
@Seehawk
Portables Programm heisst fuer mich, das dieses Ding sich auf z.B. einem USB-Stick befindet.
Und Du willst exakt dieses Programm irgendwie "automatisch" starten egal an welchem Geraet?

Ich denke, Du solltest das "Projekt" mal erklaeren.
 
Seehawk schrieb:
mehr kann ich auch leider auch nicht helfen,
Das glaube ich nicht. Was willst du denn? schreibst du ein Programm? Ein Batch-Script?
Was für eine Datei willst du denn öffnen?
Seehawk schrieb:
aber gibt es nicht so etwas wie:

%ExecutableFilePath% - etwas speichern an der stelle wo die exe die ich starte liegt, ohne absolute Pfadangabe weil die ja variieren kann.
Wie gesagt, dafür gibt es relative Pfade. Die heißen relativ, weil sie sich immer relativ auf die aktuelle Position aka den Ausführungsort beziehen.
Alternativ bieten viele Sprachen auch die Möglichkeit die eigene Position zu bestimmen. Z.b in C#
C#:
System.Reflection.Assembly.GetEntryAssembly().Location;
Quelle
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Seehawk
@Nolag hat die Lösung schon gegeben. Hier mal als Beispiel: Die Batchdatei mit dem Inhalt

Code:
@echo off
set MYDIR=%~dp0
echo Verzeichnis: %MYDIR%

liegt in c:\temp\Flöte.

Damit nun ein Aufruf in cmd:

Code:
Microsoft Windows [Version 10.0.19041.985]
(c) Microsoft Corporation. Alle Rechte vorbehalten.

C:\WINDOWS\system32>cd c:\temp\banane

c:\Temp\Banane>c:\temp\flöte\test.bat
Verzeichnis: c:\Temp\Flöte\

c:\Temp\Banane>
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Seehawk
Danke euch, ja wenn die Batch so vor einem liegt versteh ich auch das mit %~dp0, jetzt werde ich mich mal ans basteln wagen.

Ist zwar etwas komplizierter als anfangs gedacht aber das krieg ich dann wohl hin.
 
Zurück
Oben