Ich möchte einige Batch-Dateien erstellen, um ein Programm zu automatisieren.
Meine Frage ist, wenn ich die Batch-Datei erstelle, wie lautet das aktuelle Verzeichnis? Ist es das Verzeichnis, in dem sich die Datei befindet, oder ist es dasselbe Verzeichnis, das in der Eingabeaufforderung angezeigt wird, oder etwas anderes?
batch-file
directory
Aaron de Windt
quelle
quelle
%0
könnte den Namen des aktuellen Unterprogramm geben, aber%~dp0
wird immer den vollständigen Pfad zum Ausführen von Batch - Datei geben..cmd
Datei und als Administrator ausgeführt wird ,%cd%
gibtC:\WINDOWS\system32
und%~dp0
gibt das Batch - Datei - Verzeichnis mit Slash am Ende.Es in der Regel ist das Verzeichnis , aus dem die Batch - Datei gestartet wird , aber wenn Sie die Batch - Datei über eine Verknüpfung starten, ein anderes Startverzeichnis angegeben werden. Auch wenn you'r in cmd ein , und Ihr aktuelles Verzeichnis ist
c:\dir3
, können Sie die Batch - Datei starten ,c:\dir1\dir2\batch.bat
in dem Fall wird das aktuelle Verzeichnis seinc:\dir3
.quelle
In einer Batchdatei ist% cd% der am häufigsten verwendete Befehl für das aktuelle Verzeichnis, obwohl Sie Ihre eigene Variable festlegen können:
Angenommen, Sie wollten Myprog.exe öffnen. Wenn es sich im selben Ordner befindet, würden Sie den folgenden Befehl verwenden:
Das würde Myprog aus dem aktuellen Ordner öffnen.
Die andere Option besteht darin, ein Verzeichnis in C: AutomatePrograms zu erstellen. Anschließend übertragen Sie Ihre Dateien in diesen Ordner und können sie mit dem folgenden Befehl öffnen:
quelle
%cd%
ist dies variabel. Wenn Sie also die Batchdatei im Windows Explorer als Administrator ausführen, erhalten SieC:\WINDOWS\system32
mit ziemlicher Sicherheit nicht das, was Sie möchten.%~dp0
ist konsequenter.Angenommen, Sie haben eine Datei in Ihrem aktuellen Verzeichnis geöffnet. Der Befehl wäre:
Ich hoffe ich habe deine Frage beantwortet.
quelle
In diesem Verzeichnis führen Sie den Befehl zum Ausführen Ihrer Batchdatei aus.
Wie in den obigen Antworten erwähnt, können Sie Ihrem Skript den folgenden Befehl hinzufügen, um Folgendes zu überprüfen:
quelle
Dies ist das Verzeichnis, in dem Sie die Batchdatei starten. Wenn sich Ihr Stapel beispielsweise in befindet
c:\dir1\dir2
und Sie dies tuncd c:\dir3
, führen Sie den Stapel aus. Das aktuelle Verzeichnis wird angezeigtc:\dir3
.quelle
Nur meine 2 Cent. Der folgende Befehl schlägt fehl, wenn er aus einer auf pendrive abgelegten Batchdatei (Windows 7) aufgerufen wird:
Aber das macht den Job:
quelle
%~dp0