Czy można uzyskać nazwę bieżącego folderu (nie bieżącą ścieżkę katalogu) za pomocą polecenia DOS? Jeśli tak to jak?
Najbliżej było to, ale to nie robi:
for /f "delims=\" %%a in ("%CD%") do set CURR=%%a
echo.DIR: %CURR%
Uwaga: powyższa próba polegała na tym, że próbowałem tokenizować ciąg i uzyskać ostatni zestaw tokenów jako zmienną CURR.
windows
command-line
batch
djangofan
źródło
źródło
cd | sed "s/.*\\//"
(To potokuje wyjście cd (cwd) do wyszukiwania wyrażeń regularnych i zamienia, zastępując wszystko przed końcem \ niczym)for /f
ani TomWij nie%~n*
są obsługiwane w MS-DOS. (Windows 'cmd.exe
to nie DOS, to natywny program Windows.)Odpowiedzi:
Najkrótsza droga, jaką znalazłem:
lub w skrypcie .bat:
lub w .bat z Uzyskaj wartość w zmiennej.
Objaśnienie: http://www.robvanderwoude.com/ntfor.php
nx oznacza tylko nazwę pliku i rozszerzenie
źródło
%
z%%
..
), takich jak mój folder% USERPROFILE%.*
użyciaJeśli chcesz poznać bieżącą lokalizację pliku wsadowego (i jeśli twój system Windows nie jest bardzo starą wersją), wpisz
for /?
okno „DOS box”. Przewiń w dół. Czytać.Dowiesz się, że można teraz czytać (od wewnątrz pliku wsadowego) tych zmiennych:
Działa to w wielu przypadkach. Załóżmy, że plik wsadowy jest nazywany
mytest.bat
. Możesz to nazwać na różne sposoby:..\..\to\mytest.bat
............................... (ścieżka względna)d:\path\to\mytest.bat
........................... (pełna ścieżka)\\fileserver\sharename\mytest.bat
... (ścieżka do zdalnego udostępniania)... i zawsze otrzymasz odpowiednią wartość w swoich zmiennych.
źródło
%~dpnx0
, prawda?Osobiście podobała mi się odpowiedź Toma, dopóki nie zmagała się z kropkami w nazwach reż. To dało mi wskazówkę:
źródło
Odpowiedź Toma jest dobra, ale jeśli masz nazwę katalogu z kropką (tj. Wxwidgets-2.9.4), otrzymasz tylko pełną nazwę. Wynikiem tego byłby wynik wxwidgets-2.9, ponieważ .4 został potraktowany jako rozszerzenie (Tak, mimo że jest to nazwa katalogu!).
Aby uzyskać pełną nazwę wyjściową, musisz dodać rozszerzenie na końcu:
oraz w trybie pliku wsadowego:
Lub, zamiast tego, ustaw zmienną w pliku wsadowym:
źródło
Innym sposobem jest:
działa z „.” i spacje w nazwie ścieżki
Co to robi?
umieść całą nazwę pliku (driveelet-path-filename-extension) w
MyPath
Varusuń nazwę pliku i rozszerzenie z
MyPath
varDziała również ze ścieżkami UNC. Jeśli potrzebujesz ukośnika na końcu ścieżki. Usuń
\
poMyPath
w drugim poleceniu set, np.źródło
%~dp0
Możesz przekształcić bieżący katalog w zmienną. Jednowarstwowy:
Sprawdź z
źródło
poprostu
lub
Uważaj na odwrotny koniec końca ścieżki, nie musi to być odwrotny koniec końca.
źródło
Moja odpowiedź w tym wątku składa się z 3 prostych linii:
źródło
To działa dla mnie z pliku wsadowego. Zwraca bieżącą nazwę katalogu roboczego.
źródło