Legen Sie die CMD-CD auf das Verzeichnis fest, in dem der Stapel ausgeführt wurde

3387
FreeSnow

Ich versuche ein Batch-Skript zu erstellen, das ein Programm in einer anderen Umgebung öffnet (damit ich eine portable Version davon erstellen kann).

Ich benutze das set APPDATA=%CD%\data, um es zu sagen. Das Problem, mit dem ich konfrontiert bin, ist, dass ich die folgende Fehlermeldung bekomme, wenn der Stapel startet:

CMD.EXE was started with the above path as the current directory. UNC paths are not supported. Defaulting to Windows directory.

Ich möchte stattdessen den cdBefehl verwenden, um es in das Stapelverzeichnis zu ändern. Gibt es einen einfachen Weg, dies zu tun?

0

2 Antworten auf die Frage

2
Glen Little

Versuchen Sie, dies in den Stapel zu setzen:

pushd "%~p0" 2> nul pushd "\\%~p0" 2> nul 

Wenn von einem UNC-Ordner aus gestartet wird, schlägt die erste Zeile fehl, die zweite funktioniert jedoch.

Wenn von einem Laufwerksordner aus gestartet wird, schlägt die zweite Zeile fehl, die erste Zeile funktioniert jedoch.

In beiden Fällen befindet sich der aktuelle Ordner dort, wo sich die Batch-Datei befindet, und Sie können Ordner von dort aus ändern.

Später können Sie anzeigen cd, aus welchem ​​Ordner Sie arbeiten.

1
David Remy

Wenn es sich um ein Netzlaufwerk handelt, haben Sie möglicherweise immer noch Probleme, es sei denn, Sie ordnen das Laufwerk zu.

APPDATA=%~dp0 cd /d %APPDATA% 

Wenn Sie ein cls ausführen, können Sie den Fehler auch löschen, aber wenn das Skript über einen UNC-Pfad ausgeführt wird, erhalten Sie diesen Fehler. Sie müssen ihn nur zuordnen oder den Fehler CLS auslösen.