Ist es möglich, den aktuellen Ordnernamen (nicht den aktuellen Verzeichnispfad) mit einem DOS-Befehl abzurufen? Wenn das so ist, wie?
Das Nächste, was ich bekam, war das, aber es macht es nicht:
for /f "delims=\" %%a in ("%CD%") do set CURR=%%a
echo.DIR: %CURR%
Hinweis: Bei dem obigen Versuch habe ich versucht, die Zeichenfolge zu tokenisieren und das letzte als CURR-Variable festgelegte Token abzurufen.
windows
command-line
batch
djangofan
quelle
quelle
cd | sed "s/.*\\//"
(Das leitet die Ausgabe von cd (cwd) in einen regulären Ausdruck zum Suchen und Ersetzen um, wobei alles vor dem finalen \ durch gar nichts ersetzt wird.)for /f
noch TomWijs%~n*
werden in MS-DOS unterstützt. (Windows 'cmd.exe
ist nicht DOS, Es ist ein natives Windows-Programm.)Antworten:
Kürzester Weg, den ich gefunden habe:
oder innerhalb eines .bat-Skripts:
oder in .bat mit Get value in variable.
Erläuterung: http://www.robvanderwoude.com/ntfor.php
nx bedeutet nur Dateiname und Erweiterung
quelle
%
mit%%
..
), z. B. mein Ordner% USERPROFILE%.*
benutzt damit vor o.o.Geben Sie Folgendes ein, wenn Sie den aktuellen Speicherort der Batchdatei ermitteln möchten (und wenn Windows keine sehr alte Version ist)
for /?
in einem DOS-Fenster. Runterscrollen. Lesen.Sie werden feststellen, dass Sie jetzt lesen können (von innerhalb die Batch-Datei) diese Variablen:
Dies funktioniert in vielen Fällen. Angenommen, die Batchdatei wird aufgerufen
mytest.bat
. Sie können es auf verschiedene Arten aufrufen:..\..\to\mytest.bat
............................... (relativer Pfad)d:\path\to\mytest.bat
........................... (vollständigen Pfad)\\fileserver\sharename\mytest.bat
... (Pfad auf der Remote-Freigabe)... und Sie erhalten immer den richtigen Wert in Ihren Variablen.
quelle
%~dpnx0
ist nicht?Ich persönlich mochte Toms Antwort, bis es mit Punkten in Dir-Namen zu kämpfen hatte. Diese gab mir einen Tipp:
quelle
Toms Antwort ist gut, aber wenn Sie einen Verzeichnisnamen mit einem Punkt (d. H. Wxwidgets-2.9.4) haben, erhalten Sie nur den vollständigen Namen. Dies würde also stattdessen wxwidgets-2.9 ausgeben, da die .4 als Erweiterung behandelt wurde (Ja, obwohl es ein Verzeichnisname ist!).
Um den vollständigen Ausgabenamen zu erhalten, müssen Sie am Ende der Erweiterung Folgendes hinzufügen:
und im Batch-Dateimodus:
Oder setzen Sie stattdessen eine Variable in die Batch-Datei:
quelle
Ein anderer Weg ist:
es funktioniert mit "." und Leerzeichen im Pfadnamen
Was tut es?
Setzen Sie den gesamten Dateinamen (Laufwerkbuchstaben-Pfad-Dateinamenerweiterung) in
MyPath
VarEntfernen Sie den Dateinamen und die Erweiterung von
MyPath
varEs funktioniert auch mit UNC-Pfaden. Wenn Sie den Backslash am Ende des Pfads benötigen. Entferne das
\
nach demMyPath
im zweiten Set-Befehl, z.quelle
%~dp0
Sie können das aktuelle Verzeichnis in eine Variable übernehmen. Einzeiler:
Überprüfen Sie mit
quelle
Meine Antwort in dieser Thread macht es in 3 einfachen Zeilen:
quelle
nur einfach
oder
Achten Sie auf den umgekehrten Schrägstrich am Ende des Pfades, er muss nicht am Ende des Pfades stehen.
quelle
Das funktioniert bei mir aus einer Batch-Datei. Es gibt den aktuellen Arbeitsverzeichnisnamen zurück.
quelle