Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Betriebssysteme (https://www.delphipraxis.net/27-betriebssysteme/)
-   -   batch: Verzeichnis der ausgeführten cmd-Datei (https://www.delphipraxis.net/121165-batch-verzeichnis-der-ausgefuehrten-cmd-datei.html)

Nogge 23. Sep 2008 11:54


batch: Verzeichnis der ausgeführten cmd-Datei
 
Hallo Community,
ich finde keinen Befehl für cmd-Dateien unter Windows im Internet, der mir das Programmverzeichnis ala ParamStr(0) ausgibt :( Wie lautet der Befehl?

Danke, Nogge

DeddyH 23. Sep 2008 12:01

Re: batch: Verzeichnis der ausgeführten cmd-Datei
 
Versuch es mal mit cd ohne weitere Parameter.

Nogge 23. Sep 2008 12:05

Re: batch: Verzeichnis der ausgeführten cmd-Datei
 
Funktioniert leider nicht, wenn man eine Datei-Verknüpfung als Administrator ausführt.

nahpets 23. Sep 2008 12:07

Re: batch: Verzeichnis der ausgeführten cmd-Datei
 
Hallo,

meinst Du %0?

Das ist der Name der Batchdatei.
Oder willst Du nur den Pfad zur Batchdatei?

Delphi-Quellcode:
for %%i in (%0) do echo %%~pi
Schau mal in die Hilfe von FOR.

Stephan

Nogge 23. Sep 2008 12:13

Re: batch: Verzeichnis der ausgeführten cmd-Datei
 
Wunderbar, danke besonders an nahpets!

Code:
for %%i in (%0) do echo %%~dpi
benötige ich. Dadurch erhalte ich den gesamten Pfad. Wie kann ich jetzt aber das Ergebnis der for-Schleife in eine Variable schreiben?

nahpets 23. Sep 2008 12:17

Re: batch: Verzeichnis der ausgeführten cmd-Datei
 
Zitat:

Zitat von Nogge
Wunderbar, danke besonders an nahpets!

Code:
for %%i in (%0) do echo %%~dpi
benötige ich. Dadurch erhalte ich den gesamten Pfad. Wie kann ich jetzt aber das Ergebnis der for-Schleife in eine Variable schreiben?

Na, ganz einfach:
Code:
for %%i in (%0) do set MeinPfad=%%~dpi
Stephan

DeddyH 23. Sep 2008 12:21

Re: batch: Verzeichnis der ausgeführten cmd-Datei
 
Jetzt weiß ich auch wieder, wieso ich Basic nie so ganz verstanden habe, fürchterliche Syntax :lol:

Nogge 23. Sep 2008 12:22

Re: batch: Verzeichnis der ausgeführten cmd-Datei
 
Mh, ja. Funktioniert. Obgleich die for-Schleife mich ziemlich irritiert. D.h. ja, dass die Schleife nur einmal durchgegangen wird, da sonst immer wieder die Variable überschrieben würde.

Vielen Dank nochmal, nahpets!

nahpets 23. Sep 2008 12:27

Re: batch: Verzeichnis der ausgeführten cmd-Datei
 
Zitat:

Zitat von Nogge
Mh, ja. Funktioniert. Obgleich die for-Schleife mich ziemlich irritiert. D.h. ja, dass die Schleife nur einmal durchgegangen wird, da sonst immer wieder die Variable überschrieben würde.

Vielen Dank nochmal, nahpets!

Ja, %0 ist der Name der Batchdatei incl. Laufwerk und Pfad, sie kann keine zwei, drei oder... Namen haben.
Die "Logik" ist gewöhnungsbedürftig, aber wenn nicht freiwillig, dann halt mit Trick 17.
Habe bisher noch keinen sinnvolleren Weg zu diesem Ergebnis gefunden, also muss FOR herhalten :wink:

Stephan

jottkaerr 24. Sep 2008 05:54

Re: batch: Verzeichnis der ausgeführten cmd-Datei
 
Die for-Schleife ist überflüssig,
Code:
set MeinPfad=%~dp0
genügt.

jkr

alzaimar 24. Sep 2008 06:06

Re: batch: Verzeichnis der ausgeführten cmd-Datei
 
Zitat:

Zitat von DeddyH
Jetzt weiß ich auch wieder, wieso ich Basic nie so ganz verstanden habe, fürchterliche Syntax :lol:

Basic? :gruebel: Das ist kein Basic.

nahpets 24. Sep 2008 09:05

Re: batch: Verzeichnis der ausgeführten cmd-Datei
 
Hallo,
Zitat:

Zitat von jottkaerr
Die for-Schleife ist überflüssig,
Code:
set MeinPfad=%~dp0
genügt.

jkr

stimmt: In welchem Teil der nichtvorhandenen Doku ist den das zu finden?

Stephan

jottkaerr 24. Sep 2008 09:48

Re: batch: Verzeichnis der ausgeführten cmd-Datei
 
Code:
help call
jkr

nahpets 24. Sep 2008 09:52

Re: batch: Verzeichnis der ausgeführten cmd-Datei
 
Zitat:

Zitat von jottkaerr
Code:
help call
jkr

Danke

Stephan


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz