Komandozeilenparameter/CMD Pfad Angabe

Gast #5602688
Lesenswert?
• ▲
▼
Hallo,
wenn ich mein Programm durch Doppelklick starte gibt es mir den 
Kompletten Pfad heraus. So erwarte ich es auch…
Aber wenn ich das Programm durch ein Bachskript starte wird nur der .exe 
Name ausgegeben.
1
printf("%s\n", argv[0]);
Wieso wird durch das sparten mit Bach der Pfad nicht komplett 
ausgegeben?
Wie kriegt man den kompletten Pfad wenn man ein Programm durch das 
Bachskript startet?

Sys ist Win 7
Danke.
#5602752
Lesenswert?
• ▲
▼
ich weiß war nicht wie deine batch aussieht und was sie genau können 
soll.
Aber folgendes ist evtl. hilfreich bei so wenig Information.

erstmal ein % zeichen für das Argument
dann ein
~d für die drive
oder
~p für path
oder
~n für filename
kombiniert als ~dp für drive + path
oder noch besser ~dpn für drive + path + filename...
jetzt noch ne 0 dahinter da du den filename der Datei haben möchtest. 1 
für das erste argument 2 fürs weite und so weiter.

%~dpn0 für drive+path+filename als ausgabe.
falls du noch mehr ausgeben lassen möchtest, kannst du hier nachschlagen 
was alles so möglich ist:
https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-xp/bb490909(v=technet.10)
Persönliche Seite #5602811
Lesenswert?
• ▲
▼
Hans schrieb:
> Wie kriegt man den kompletten Pfad wenn man ein Programm durch das
> Bachskript startet?

Indem Du den übergebenen relativen Pfad in einen absoluten konvertierst.

https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-getfullpathnamea

Dann kann Dein Programm auch per Ba_t_chskript gestartet werden, oder 
aus der Eingabeaufforderung, oder wie auch immer.

Daß beim Doppelklick der komplette Pfad übergeben wird, ist eine 
Eigenheit des Explorers.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.