Batch-Skript funktioniert nicht?

3 Antworten

Vom Fragesteller 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 
Fragesteller
 24.04.2020, 18:11

Danke, mit %~dp0 hat es funktioniert.

2

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 
Fragesteller
 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. :)

1
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.

1
Hanswurst123523 
Fragesteller
 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.

0

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