Czy istnieje polecenie wiersza polecenia systemu Windows, którego można użyć, aby uzyskać pełną ścieżkę do bieżącego katalogu roboczego?
Jak mogę zapisać tę ścieżkę w zmiennej używanej w pliku wsadowym?
Czy istnieje polecenie wiersza polecenia systemu Windows, którego można użyć, aby uzyskać pełną ścieżkę do bieżącego katalogu roboczego?
Jak mogę zapisać tę ścieżkę w zmiennej używanej w pliku wsadowym?
Odpowiedzi:
Użyj cd
bez argumentów, jeśli używasz powłoki bezpośrednio lub %cd%
jeśli chcesz użyć jej w pliku wsadowym (zachowuje się jak zmienna środowiskowa).
Możesz ustawić zmienną wsadową / środowiskową w następujący sposób:
SET var=%cd%
ECHO %var%
przykładowy zrzut ekranu z Windows 7 x64 cmd.exe.
Aktualizacja: jeśli zrobiszSET var = %cd%
zamiastSET var=%cd%
, poniżej, co się stanie. Dzięki jeb.
SET var = %cd%
umieścić wartość w zmiennej var<space>
nie do var
. Powinieneś unikać spacji w poleceniu SET
Cytuj pomoc systemu Windows dla set
polecenia ( set /?
):
Jeśli rozszerzenia poleceń są włączone, istnieje kilka dynamicznych zmienne środowiskowe, które można rozwinąć, ale które się nie wyświetlają lista zmiennych wyświetlanych przez SET. Te wartości zmiennych to obliczany dynamicznie za każdym razem, gdy wartość zmiennej jest rozszerzana. Jeśli użytkownik wyraźnie zdefiniuje zmienną o jednej z tych nazw, wówczas definicja ta zastąpi definicję dynamiczną opisaną poniżej: % CD% - rozwija się do bieżącego ciągu katalogu. % DATE% - rozwija się do bieżącej daty przy użyciu tego samego formatu, co polecenie DATA. % TIME% - rozwija się do bieżącego czasu przy użyciu tego samego formatu co polecenie CZAS. % RANDOM% - rozwija się do losowej liczby dziesiętnej od 0 do 32767. % ERRORLEVEL% - rozwija się do bieżącej wartości ERRORLEVEL % CMDEXTVERSION% - rozwija się do bieżących rozszerzeń procesora poleceń numer wersji. % CMDCMDLINE% - rozwija się do pierwotnego wiersza poleceń, który wywołał Procesor poleceń.
Zwróć uwagę na %CD% - expands to the current directory string.
część.
Na Uniksie?
pwd
To zawsze działało dla mnie:
SET CurrentDir="%~dp0"
ECHO The current file path this bat file is executing in is the following:
ECHO %CurrentDir%
Pause
W przypadku systemu Windows cd
sam pokaże bieżący katalog roboczy.
W systemach UNIX i podobnych, pwd
wykona to samo zadanie. Możesz także użyć $PWD
zmiennej powłoki pod niektórymi powłokami. Nie jestem pewien, czy Windows obsługuje pobieranie bieżącego katalogu roboczego przez zmienną powłoki, czy nie.
%cd%
W systemie Windows:
CHDIR Wyświetla nazwę lub zmienia bieżący katalog.
W systemie Linux:
PWD Wyświetla nazwę bieżącego katalogu.
Na podstawie pytania uzupełniającego (przechowującego dane w zmiennej) w komentarzach do postu chdir założę się, że chce zapisać bieżącą ścieżkę, aby przywrócić ją po zmianie katalogów.
Pierwotny użytkownik powinien spojrzeć na „pushd”, który zmienia katalog i wypycha bieżącego na stos, który można przywrócić za pomocą „popd”. Na każdej nowoczesnej powłoce cmd systemu Windows, która jest odpowiednia podczas tworzenia plików wsadowych.
Jeśli naprawdę potrzebujesz złapać bieżącą ścieżkę, nowoczesne powłoki cmd mają również zmienną% CD%, którą możesz łatwo umieścić w innej zmiennej w celach informacyjnych.
Utwórz .bat
plik pod System32
, nazwijmy go copypath.bat
poleceniem skopiowania bieżącej ścieżki może być :
echo %cd% | clip
Objaśnienie:
%cd%
poda aktualną ścieżkę
CLIP
Description:
Redirects output of command line tools to the Windows clipboard.
This text output can then be pasted into other programs.
Parameter List:
/? Displays this help message.
Examples:
DIR | CLIP Places a copy of the current directory
listing into the Windows clipboard.
CLIP < README.TXT Places a copy of the text from readme.txt
on to the Windows clipboard.
Teraz copyclip
jest dostępny zewsząd.
@echo off
for /f "usebackq tokens=*" %%x in (`chdir`) do set var=%%x
echo The currenct directory is: %var%
Ale oczywiście odpowiedź gmaran23 jest znacznie łatwiejsza.
tokens=*
naprawia to.
W wierszu polecenia systemu Windows chdir
lub cd
wydrukuje pełną ścieżkę bieżącego katalogu roboczego w konsoli.
Jeśli chcemy skopiować ścieżkę wtedy możemy użyć: cd | clip
.
W systemie Windows wpisz cd
działającą bieżącą ścieżkę.
W systemie Linux pwd
dla bieżącej ścieżki roboczej.