Есть ли команда командной строки 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
.