Есть ли команда командной строки Windows, которую я могу использовать, чтобы получить полный путь к текущему рабочему каталогу?
Кроме того, как я могу сохранить этот путь внутри переменной, используемой в командном файле?
Есть ли команда командной строки Windows, которую я могу использовать, чтобы получить полный путь к текущему рабочему каталогу?
Кроме того, как я могу сохранить этот путь внутри переменной, используемой в командном файле?
Ответы:
Используйте cdбез аргументов, если вы используете оболочку напрямую или %cd%если вы хотите использовать ее в командном файле (она ведет себя как переменная окружения).
Вы можете установить переменную пакета / среды следующим образом:
SET var=%cd%
ECHO %var%
Пример скриншота из Windows 7 x64 cmd.exe.

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

SET var = %cd%помещать значение в переменную var<space>не в var. Вы должны избегать пробелов в команде SET
Цитировать справку Windows для setкоманды (set /? ):
Если расширения команд включены, то есть несколько динамических
переменные среды, которые могут быть расширены, но которые не отображаются в
список переменных, отображаемых SET. Эти значения переменных
вычисляется динамически каждый раз, когда значение переменной увеличивается.
Если пользователь явно определяет переменную с одним из этих имен, то
это определение переопределит динамическое, описанное ниже:
% CD% - расширяется до текущей строки каталога.
% DATE% - расширяется до текущей даты, используя тот же формат, что и команда DATE.
% TIME% - расширяется до текущего времени, используя тот же формат, что и команда TIME.
% RANDOM% - расширяется до случайного десятичного числа от 0 до 32767.
% ERRORLEVEL% - расширяется до текущего значения ERRORLEVEL
% CMDEXTVERSION% - расширяется до текущих расширений командного процессора
номер версии.
% CMDCMDLINE% - расширяется до исходной командной строки, которая вызвала
Командный процессор.
Обратите внимание на %CD% - expands to the current directory string.часть.
В Unix?
PWD
Это всегда работало для меня:
SET CurrentDir="%~dp0"
ECHO The current file path this bat file is executing in is the following:
ECHO %CurrentDir%
Pause
Для Windows cdсама покажет вам текущий рабочий каталог.
Для UNIX и аналогичных систем, pwdбудет выполнять ту же задачу. Вы также можете использовать $PWDпеременную оболочки под некоторыми оболочками. Я не уверен, поддерживает ли Windows получение текущего рабочего каталога через переменную оболочки или нет.
%cd%
В Windows:
CHDIR Отображает имя или изменяет текущий каталог.
В Linux:
PWD Отображает название текущего каталога.
Основываясь на последующем вопросе (сохранить данные в переменной) в комментариях к посту chdir, я держу пари, что он хочет сохранить текущий путь, чтобы восстановить его после смены каталогов.
Первоначальный пользователь должен посмотреть на «pushd», который меняет каталог и помещает текущий в стек, который можно восстановить с помощью «popd». На любой современной Windows-оболочке cmd это способ сделать при создании командных файлов.
Если вам действительно нужно получить текущий путь, тогда современные оболочки cmd также имеют переменную% CD%, которую вы легко можете добавить в другую переменную для справки.
Создайте .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доступно отовсюду.
@echo off
for /f "usebackq tokens=*" %%x in (`chdir`) do set var=%%x
echo The currenct directory is: %var%
Но, конечно , ответ gmaran23 гораздо проще.
tokens=*исправляет это.
В командной строке Windows, chdirили cdнапечатает полный путь текущего рабочего каталога в консоли.
Если мы хотим , чтобы скопировать путь , то мы можем использовать: cd | clip.