it-swarm.com.de

Was ist das aktuelle Verzeichnis in einer Batch-Datei?

Ich möchte ein paar Batch-Dateien erstellen, um ein Programm zu automatisieren.

Meine Frage ist, wann ich die Stapelverarbeitungsdatei erstelle, welches das gegenwärtige Verzeichnis ist? Ist es das Verzeichnis, in dem sich die Datei befindet, oder ist es dasselbe Verzeichnis, das in der Eingabeaufforderung angezeigt wird, oder etwas anderes?

437
Aaron de Windt

Aus Ihrer Batch-Datei heraus:

  • %cd% bezieht sich auf das aktuelles Arbeitsverzeichnis (Variable)
  • %~dp0 bezieht sich auf den vollständigen Pfad zum Verzeichnis der Stapeldatei (statisch)
  • %~dpnx0 und %~f0 beziehen sich beide auf den vollständigen Pfad zum Stapelverzeichnis und den Dateinamen (statisch).
905
JRL

Es normalerweise ist das Verzeichnis, aus dem die Batchdatei gestartet wird. Wenn Sie die Batchdatei jedoch über eine Verknüpfung starten, kann ein anderes Startverzeichnis angegeben werden. Wenn Sie sich in cmd befinden und Ihr aktuelles Verzeichnis c:\dir3 lautet, können Sie die Batch-Datei weiterhin mit c:\dir1\dir2\batch.bat starten. In diesem Fall lautet das aktuelle Verzeichnis c:\dir3.

24
GolezTrol

In einer Batch-Datei ist% cd% der am häufigsten verwendete Befehl für das aktuelle Verzeichnis, obwohl Sie Ihre eigene Variable festlegen können:

set mypath=%cd%
echo %mypath% (where %mypath% is the current directory that the batch file is sitting in)

Angenommen, Sie wollten Myprog.exe öffnen. Wenn es sich in demselben Ordner befände, würden Sie den folgenden Befehl verwenden:

start %mypath%\Myprog.exe

Das würde Myprog aus dem aktuellen Ordner öffnen.

Die andere Möglichkeit besteht darin, ein Verzeichnis in C: mit dem Namen AutomatePrograms zu erstellen. Anschließend übertragen Sie Ihre Dateien in diesen Ordner und können sie mit dem folgenden Befehl öffnen:

start "" "C:\AutomatePrograms\Myprog1.exe"
start "" "C:\AutomatePrograms\Myprog2.exe"
start "" "C:\AutomatePrograms\Myprog3.exe"
10
J. Bond

Es ist das Verzeichnis, von dem aus Sie die Batch-Datei starten. Z.B. Wenn sich Ihr Stapel in c:\dir1\dir2 befindet und Sie cd c:\dir3 ausführen, lautet das aktuelle Verzeichnis c:\dir3.

5
icyrock.com

Dies ist das Verzeichnis, in dem Sie den Befehl zum Ausführen Ihrer Batchdatei ausführen.

Wie in den obigen Antworten erwähnt, können Sie den folgenden Befehl zu Ihrem Skript hinzufügen, um Folgendes zu überprüfen:

> set current_dir=%cd%
> echo %current_dir%  
5
anuj0901

Angenommen, Sie haben eine Datei in Ihrem aktuellen Verzeichnis geöffnet. Der Befehl wäre:

 start %cd%\filename.filetype

Ich hoffe ich habe deine Frage beantwortet.

4