Команда оболочки Windows, чтобы получить полный путь к текущему каталогу? - PullRequest
176 голосов
/ 03 марта 2009

Есть ли команда командной строки Windows, которую я могу использовать, чтобы получить полный путь к текущему рабочему каталогу?

Кроме того, как я могу сохранить этот путь внутри переменной, используемой в командном файле?

Ответы [ 13 ]

276 голосов
/ 03 марта 2009

Используйте cd без аргументов, если вы используете оболочку напрямую, или %cd%, если хотите использовать ее в пакетном файле (он ведет себя как переменная среды).

85 голосов
/ 04 июля 2013

Вы можете установить переменную пакета / среды следующим образом:

SET var=%cd%
ECHO %var%

пример скриншота из Windows 7 x64 cmd.exe.

enter image description here

Обновление: Если вы делаете SET var = %cd% вместо SET var=%cd%, ниже приведено описание того, что происходит. Благодаря Джеб.

enter image description here

Захват текущего каталога из командного файла

43 голосов
/ 04 марта 2009

Цитировать справку Windows для команды set (set /?):

If Command Extensions are enabled, then there are several dynamic
environment variables that can be expanded but which don't show up in
the list of variables displayed by SET.  These variable values are
computed dynamically each time the value of the variable is expanded.
If the user explicitly defines a variable with one of these names, then
that definition will override the dynamic one described below:

%CD% - expands to the current directory string.

%DATE% - expands to current date using same format as DATE command.

%TIME% - expands to current time using same format as TIME command.

%RANDOM% - expands to a random decimal number between 0 and 32767.

%ERRORLEVEL% - expands to the current ERRORLEVEL value

%CMDEXTVERSION% - expands to the current Command Processor Extensions
    version number.

%CMDCMDLINE% - expands to the original command line that invoked the
    Command Processor.

Обратите внимание на %CD% - expands to the current directory string. часть.

23 голосов
/ 03 марта 2009

в Unix?

PWD

13 голосов
/ 03 марта 2013

Это всегда работало для меня:

SET CurrentDir="%~dp0"

ECHO The current file path this bat file is executing in is the following:

ECHO %CurrentDir%

Pause
12 голосов
/ 01 октября 2013

Для Windows мы можем использовать

cd

и для Linux

pwd

команда есть.

6 голосов
/ 17 августа 2015

В Windows:

CHDIR Отображение имени или изменение текущего каталога.

В Linux:

PWD Отображение имени текущего каталога.

6 голосов
/ 03 марта 2009

Для Windows cd сама покажет вам текущий рабочий каталог.

Для UNIX и аналогичных систем pwd выполнит ту же задачу. Вы также можете использовать переменную оболочки $PWD в некоторых оболочках. Я не уверен, поддерживает ли Windows получение текущего рабочего каталога через переменную оболочки.

4 голосов
/ 03 марта 2009

Основываясь на последующем вопросе (сохраните данные в переменной) в комментариях к посту chdir, я держу пари, что он хочет сохранить текущий путь, чтобы восстановить его после смены каталогов.

Первоначальный пользователь должен посмотреть на «pushd», который меняет каталог и помещает текущий в стек, который можно восстановить с помощью «popd». В любой современной Windows-оболочке cmd этот способ подходит для создания командных файлов.

Если вам действительно нужно получить текущий путь, тогда современные оболочки cmd также имеют переменную% CD%, которую вы легко можете добавить в другую переменную для справки.

2 голосов
/ 12 сентября 2018

Создайте файл .bat в System32, назовите его copypath.bat, команда для копирования текущего пути может быть :

echo %cd% | clip

Объяснение:

%cd% даст вам текущий путь

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.

Теперь copyclip доступен отовсюду.

...