Batch-Skript funktioniert nicht?

3 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Da %PFAD% wahrscheinlich einfach immer das Verzeichnis sein soll, in dem die Batch-Datei liegt, kannst du stattdessen einfach %~dp0 verwenden.

Hierbei erstellst du mithilfe der Variable %0, in der immer der Pfad zur eigenen Datei enthalten ist, den Laufwerksbuchstaben und Pfad davon. Diese bleibt auch identisch, nachdem du das aktuelle Arbeitsverzeichnis per cd geändert hast.

Bei `cd` solltest du vielleicht auch die Option /D verwenden, um zusätzlich zum Pfad auch das Laufwerk wechseln zu können.

Zudem ist es sinnvoll auch die Existenz des "Program Files (x86)"-Ordners zu überprüfen.


Hanswurst123523 
Beitragsersteller
 24.04.2020, 18:11

Danke, mit %~dp0 hat es funktioniert.

SET PFAD=%CD% Weist den aktuellen Pfad zu. Startest du es von System32 aus?
Mit ECHO %PFAD% kannst du dir deinen aktuell zugewiesen Pfad anzeigen lassen.
CD "C:\Program Files (x86)" stattdessen geht auch CD %ProgramFiles(x86)%

IF NOT EXIST erübrigt sich durch IF EXIST und kann in ELSE mit rein,
sofern diese Überprüfung nicht für anderweitige Zwecke gedacht war.

IF EXIST ".\Beispiel\V_1.0" ( ECHO "EXIT"
) ELSE ( MD ".\Beispiel" ".\Beispiel\V_1.0" )


Hanswurst123523 
Beitragsersteller
 23.04.2020, 23:52

Nein, die Anwendung wird aus einem Ordner gestartet und den Test mit echo habe ich schon gemacht. Danke für die anderen Tipps. :)

mondai  24.04.2020, 00:15
@Hanswurst123523

Gerne ;-)
... natürlich wäre es seltsam, wenn dir folgende Hilfsausgabe: ECHO COPY "%PFAD%" ".\Beispiel\V_1.0" so etwas wie COPY "C:\Mein Pfad\Installer" ".\Beispiel\V_1.0" ausgibt, aber COPY "C:\Windows\System32" ".\Beispiel\V_1.0" ausgeführt wird.

Hanswurst123523 
Beitragsersteller
 24.04.2020, 18:03
@mondai

Genau das habe ich eben ausprobiert. Am Anfang des Skripts kommt der richtige Pfad raus, am Ende aber der falsche.

Warum auch immer die beiden Codefenster getrennt sind... Sie gehören jedenfalls zusammen. Die Zeilenumbrüche im ersten Fenster sind auch kaputt, naja, egal.