Wie Sie eine batch-Datei, die eine Ebene über dem aktuellen Verzeichnis?
Bin ich über eine batch-Datei in folder1/folder2/file.bat
Gibt es eine batch-Datei in den übergeordneten Ordner folder1
, dass ich Sie öffnen möchten, durch file.bat
Ich habe versucht mit:
start ..\..\code.bat
Aber dies führt zu einer Fehlermeldung, weil die Datei nicht gefunden werden konnte.
Irgendwelche Ideen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnte man nur:
Und das wäre eine start-code.Fledermaus aus seinem eigenen Verzeichnis
Möchte ich erklären, besser gesagt, was sollte verwendet werden, mit einem Beispiel, wie die Antworten bis jetzt arbeiten nur mit aktuellen Arbeitsverzeichnis wird das Verzeichnis mit der batch-Datei
file.bat
.Gibt es eine directory-Struktur wie folgt:
Das aktuelle Arbeitsverzeichnis ist C:\Temp auf die Ausführung
Example.bat
entweder mitoder mit
Die batch-Datei
Parent.bat
enthält zum Beispiel:Die batch-Datei
Example.bat
enthält bereits:Die wirklich funktionierende Lösungen in diesem Szenario mit den aktuellen Arbeits-Verzeichnis wird ein anderes Verzeichnis als das Verzeichnis mit
Example.bat
sind wie folgt.Weiterhin batch-Verarbeitung mit Eltern.bat
%0
Referenzen argument 0 auf Ausführung der batch-Datei, die immer den Namen der batch-Datei als angegeben in der parent-Prozess beim starten der batch-Datei.Aber wollte das Laufwerk und den Pfad der batch-Datei ohne doppelte Anführungszeichen. Daher der Ausdruck
%~dp0
wird verwendet, um C:\Temp\Folder 1\Ordner 2\ vom argument 0.Auf diesem Pfad die Zeichenfolge ..\Elternteil.bat angehängt wird und zusätzlich die gesamte neue Datei namens
C:\Temp\Folder 1\Ordner 2\..\Elternteil.bat ist eingeschlossen in doppelte Anführungszeichen, wegen der Leerzeichen.
Gibt es keine Rückkehr in
Example.bat
nach der Verarbeitung vonParent.bat
fertig.Nennen Eltern.bat wie ein Unterprogramm
Befehl nennen Ergebnisse in der Ausführung der batch-Datei
Parent.bat
im gleichen Befehl process (Konsole) mit Unterbrechung der AusführungExample.bat
bisParent.bat
fertig.Die batch-Ausführung wird fortgesetzt auf der nächsten Zeile in
Example.bat
nach der Verarbeitung vonParent.bat
fertig.Ausnahme:
Parent.bat
enthält Befehlexit
ohne Schalter/B
denn dies führt zu einem sofortigen beenden von command line interpretercmd.exe
VerarbeitungExample.bat
undParent.bat
.Ausführen
call /?
oderhelp call
in einem Eingabeaufforderung-Fenster für kurze Hilfe zum Kommando nennen.Start Eltern.bat als parallel-Prozess
Befehl start ohne parameter-mit Ausnahme der optionalen Titel Ergebnisse in der Ausführung der batch-Datei
Parent.bat
durch einen separaten Befehl Prozess in einer separaten Konsole-Fenster, die ohne Unterbrechung der Ausführung desExample.bat
.Deshalb werden die beiden batch-Dateien laufen zur gleichen Zeit (mehr oder weniger).
Hinweis:
Befehl start interpretiert die erste Zeichenkette in doppelten Anführungszeichen als Titel. Daher ist es notwendig zu definieren, der explizit einen Titel in doppelten Anführungszeichen, wenn die batch-Datei oder eine Anwendung zu starten, oder jedes argument von den gestarteten batch-Datei /Anwendung angegeben werden muss, in Anführungszeichen, weil von 1 oder mehr Leerzeichen.
Ausführen
start /?
oderhelp start
in einem Eingabeaufforderung-Fenster für kurze Hilfe zum Kommando start.Nennen Eltern.bat als separaten Prozess
Befehl start mit dem optionalen parameter
/wait
Ergebnisse in der Ausführung der gestarteten batch-Datei /Anwendung als separater Prozess (zusätzliche Konsole-Fenster für eine batch-Datei oder in der Konsole-Anwendung), aber die Unterbrechung der Ausführung des aktuellen batch-Datei, bis der gestartete Prozess (Windows-Anwendung oder batch-Datei /console-Anwendung ausgeführt in eine neue Konsole-Fenster) beendet sich selbst.%~dp0
ist die Antwort und funktioniert Super. Danke...\
wird verwendet, um zu gehen eine Ebene nach oben. Ihr Fall erfordert zwei Ebenen bisVersuchen:
diese zu verwenden: