Ответ 1
Используйте cd
без аргументов, если вы используете оболочку напрямую или %cd%
, если вы хотите использовать ее в пакетном файле (ведет себя как среда var).
Есть ли команда командной строки Windows, которую я могу использовать для получения полного пути к текущему рабочему каталогу? Кроме того, как я могу сохранить этот путь внутри переменной, используемой в пакетном файле?
Используйте cd
без аргументов, если вы используете оболочку напрямую или %cd%
, если вы хотите использовать ее в пакетном файле (ведет себя как среда var).
Вы можете установить переменную пакет/среду следующим образом:
SET var=%cd%
ECHO %var%
пример скриншота из Windows 7 x64 cmd.exe.
Обновление:, если вы выполняете SET var = %cd%
вместо SET var=%cd%
, ниже происходит то, что происходит. Благодаря jeb.
Отправьте справку 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.
.
В Unix?
PWD
Для Windows мы можем использовать
cd
и для Linux
pwd
есть команда.
Для Windows cd
сам покажет вам текущий рабочий каталог.
Для UNIX и рабочих систем, pwd
выполнит ту же задачу. Вы также можете использовать переменную оболочки $PWD
в некоторых оболочках. Я не уверен, поддерживает ли Windows получение текущего рабочего каталога через переменную оболочки или нет.
Это всегда срабатывало для меня:
SET CurrentDir="%~dp0"
ECHO The current file path this bat file is executing in is the following:
ECHO %CurrentDir%
Pause
На основе вопроса о последующих действиях (сохраняйте данные в переменной) в комментариях к сообщению chdir, я уверен, что он хочет сохранить текущий путь для его восстановления после смены каталогов.
Исходный пользователь должен посмотреть на "pushd", который меняет каталог и толкает текущий в стек, который можно восстановить с помощью "popd". В любой современной Windows cmd-оболочке, которая подходит для создания пакетных файлов.
Если вам действительно нужно захватить текущий путь, то современные CMD-оболочки также имеют% CD% -ную переменную, которую вы легко можете найти в другой переменной для справки.
В Windows:
CHDIR Отображает имя или изменяет текущий каталог.
В Linux:
PWD Отображает имя текущего каталога.
@for /f "usebackq" %%x in (`chdir`) do set var=%%x
@echo "The currenct directory is: %var%"
Но, конечно, ответ gmaran23 намного проще.
В командной строке Windows chdir
или cd
будет напечатан полный путь к текущему рабочему каталогу в консоли.
Если мы хотим скопировать путь, мы можем использовать: cd | clip
.
Спасибо.
В Windows Type cd
для рабочего тока
В Linux pwd
Для текущего рабочего пути