it-swarm.com.ru

Команду Windows Shell, чтобы получить полный путь к текущему каталогу?

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

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

177
user62958

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

279
Trevor Bramble

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

SET var=%cd%
ECHO %var%

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

enter image description here

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

enter image description here

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

85
gmaran23

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

 Если включены расширения команд, существует несколько динамических 
 Переменных среды, которые можно развернуть, но которые не отображаются в 
 Списке переменных, отображаемых с помощью SET. Эти значения переменных 
 Вычисляются динамически каждый раз, когда значение переменной раскрывается. 
 Если пользователь явно определяет переменную с одним из этих имен, то 
 Это определение переопределит динамический, описанный ниже: 
 
% CD% - расширяется до текущей строки каталога. 
 
% DATE% - расширяется до текущей даты, используя тот же формат, что и команда DATE . 
 
% TIME% - расширяется до текущего времени, используя тот же формат, что и команда TIME. 
 
% RANDOM% - расширяется до случайного десятичного числа от 0 до 32767 . 
 
% ERRORLEVEL% - расширяется до текущего значения ERRORLEVEL 
 
% CMDEXTVERSION% - расширяется до текущего номера версии расширений командного процессора 
. 
 
% CMDCMDLINE% - раскрывается до исходной командной строки, которая вызывала 
 Командный процессор. 

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

43
Patrick Cuff

В Unix?

pWD

23
Stephen Curial

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

SET CurrentDir="%~dp0"

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

ECHO %CurrentDir%

Pause
13
Fred Scales

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

cd

и для Linux

pwd

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

12
Nikunj K.

В Windows:

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

В Linux:

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

6
Ajay Jayavarapu

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

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

6
Michael Trausch

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

Исходный пользователь должен смотреть на "pushd", который меняет каталог и помещает текущий в стек, который можно восстановить с помощью "popd". На любой современной Windows cmd Shell это способ сделать при создании командных файлов.

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

4
Mark
@for /f "usebackq" %%x in (`chdir`) do set var=%%x
@echo "The currenct directory is: %var%"

Но конечно ответ gmaran23 гораздо проще.

2
René Nyffenegger

Создайте файл .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 доступен отовсюду.

2
Vishrant

В командной строке Windows chdir или cd напечатает полный путь текущего рабочего каталога в консоли.

Если мы хотим скопировать путь, мы можем использовать: cd | clip.

1
Samrat Debroy