
Ich versuche, ein Batch-Skript zu erstellen, das ein Programm in einer anderen Umgebung öffnet (damit ich eine portable Version davon erstellen kann).
Ich verwende dies, set APPDATA=%CD%\data
um ihm mitzuteilen, dass er das tun soll. Das Problem, mit dem ich konfrontiert bin, ist, dass ich beim Starten des Batches den folgenden Fehler erhalte:
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 cd
Befehl verwenden, um es in das Batch-Verzeichnis zu ändern. Gibt es eine einfache Möglichkeit, dies zu tun?
Antwort1
Wenn es sich auf einem Netzlaufwerk befindet, könnten dennoch Probleme auftreten, wenn Sie das Laufwerk nicht zuordnen. Warum gehen Sie nicht wie folgt vor?
APPDATA=%~dp0
cd /d %APPDATA%
Sie können den Fehler auch durch Ausführen eines CLS beheben. Wenn das Skript jedoch von einem UNC-Pfad ausgeführt wird, wird dieser Fehler angezeigt. Sie müssen es einfach zuordnen oder den Fehler per CLS beheben.
Antwort2
Versuchen Sie, Folgendes in den Stapel einzufügen:
pushd "%~p0" 2> nul
pushd "\\%~p0" 2> nul
Beim Start aus einem UNC-Ordner schlägt die erste Zeile fehl, die zweite funktioniert jedoch.
Beim Start von einem zugeordneten Laufwerksordner schlägt die zweite Zeile fehl, die erste funktioniert jedoch.
In jedem Fall ist der aktuelle Ordner der Ort, an dem sich die Batchdatei befindet, und Sie können von dort aus den Ordner ändern.
Später können Sie damit cd
anzeigen, in welchem Ordner Sie arbeiten.