2009-03-03 2 views
103

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

+1

Вы, кажется, не хватает важной частью вопроса. Пожалуйста, измените. – GEOCHET

+0

find/dir/to/start/from -type f -ls Этот формат даты для числового поиска/dir/to/start/from -type f -exec ls -l -time-style = "+% Y% m % e% H:% M "{} \; – 2012-05-07 00:54:18

ответ

170

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

+8

* Как вы понимаете, что он пытался сказать от * этого *? И, в соответствии с dos и windows cmd, его обычно просто «cd» – Rook

+9

Честно говоря, я не мог думать ни о чем другом, о котором они могли бы попросить, поскольку вопрос был сформулирован. –

+0

@Trevor - Хехехе, да. Правда. – Rook

21

В Unix?

PWD

+1

Первоначально OP запросил «команду» и не указал ОС. OS теперь указана, поэтому этот ответ больше не уместен. – Tisch

5

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

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

+0

Я не могу понять, почему ему нужно «cd», чтобы увидеть его текущую директорию. По умолчанию он отображается как день. И если он изменил его, он точно знает, что делает «cd». – Rook

+1

Ему нужен пакетный файл. – Ikke

+0

очень старый, но только для полноты: да, у окон есть вариация для этого. Он назван (предположим ...) '% cd%' – Stephan

3

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

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

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

36

Quote помощь для 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. часть.

6

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

SET CurrentDir="%~dp0" 

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

ECHO %CurrentDir% 

Pause 
+2

Это делает не то, что нужно - находит путь к пакетному сценарию, а не к текущему каталогу. –

+1

Сокращенный из-за того, что не отвечает на вопрос OP. – Tisch

+0

Упрощенный из-за ответа на вопрос OP ... и предоставление мне точного решения, которое я искал. Благодаря! –

55

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

SET var=%cd% 
ECHO %var% 

скриншот выборки из Windows 7 x64 cmd.exe.

enter image description here

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

enter image description here

Capturing the current directory from a batch file

+1

В соответствии с вопросом, этот ответ должен быть фактически принят. –

+4

Но это не работает, так как 'SET var =% cd%' помещает значение в переменную 'var ' не в 'var'. Вы должны избегать пробелов в команде SET – jeb

+1

В соответствии с вопросом, этот ответ должен быть фактически принят. –

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

Но, конечно, ответ gmaran23 является гораздо проще один.

9

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

cd

и для Linux

команда pwd

есть.

3

В Windows:

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

В Linux:

PWD Показывает имя текущего каталога.

0

В командной строке Windows chdir или cd напечатает полный путь к текущему рабочему каталогу в консоли. Если мы хотим скопировать путь, мы можем использовать: cd | clip.

Спасибо.

-3

В Windows Тип cd для работы Текущий путь В Linux pwd Для текущей рабочей Путь

+2

Есть уже 10 ответов с тем же решением, но больше объяснений – jeb