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 cdbez 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 setpolecenia ( 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 cdsam pokaże bieżący katalog roboczy.
W systemach UNIX i podobnych, pwdwykona to samo zadanie. Możesz także użyć $PWDzmiennej 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 .batplik pod System32, nazwijmy go copypath.batpoleceniem 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 copyclipjest 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 chdirlub cdwydrukuje 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 cddziałającą bieżącą ścieżkę.
W systemie Linux pwddla bieżącej ścieżki roboczej.