¿Existe un comando de línea de comando de Windows que pueda usar para obtener la ruta completa al directorio de trabajo actual?
Además, ¿cómo puedo almacenar esta ruta dentro de una variable utilizada en un archivo por lotes?
¿Existe un comando de línea de comando de Windows que pueda usar para obtener la ruta completa al directorio de trabajo actual?
Además, ¿cómo puedo almacenar esta ruta dentro de una variable utilizada en un archivo por lotes?
Respuestas:
Úselo cdsin argumentos si está utilizando el shell directamente, o %cd%si desea utilizarlo en un archivo por lotes (se comporta como una variable de entorno).
Puede establecer una variable de lote / entorno de la siguiente manera:
SET var=%cd%
ECHO %var%
captura de pantalla de muestra de un Windows 7 x64 cmd.exe.

Actualización: si haces un enSET var = %cd%lugar deSET var=%cd%, a continuación es lo que sucede. Gracias a jeb.

SET var = %cd%poner el valor en la variable var<space>no en var. Debe evitar espacios en el comando SET
Cite la ayuda de Windows para el setcomando ( set /?):
Si las extensiones de comando están habilitadas, entonces hay varias dinámicas
variables de entorno que se pueden expandir pero que no aparecen en
la lista de variables que muestra SET. Estos valores variables son
calculado dinámicamente cada vez que se expande el valor de la variable.
Si el usuario define explícitamente una variable con uno de estos nombres, entonces
esa definición anulará la dinámica que se describe a continuación:
% CD%: se expande a la cadena de directorio actual.
% DATE%: se expande a la fecha actual con el mismo formato que el comando DATE.
% TIME%: se expande a la hora actual utilizando el mismo formato que el comando TIME.
% RANDOM%: se expande a un número decimal aleatorio entre 0 y 32767.
% ERRORLEVEL%: se expande al valor ERRORLEVEL actual
% CMDEXTVERSION%: se expande a las extensiones actuales del procesador de comandos
número de versión.
% CMDCMDLINE%: se expande a la línea de comando original que invoca el
Procesador de comando.
Tenga en cuenta la %CD% - expands to the current directory string.parte.
En Unix?
pwd
Esto siempre me ha funcionado:
SET CurrentDir="%~dp0"
ECHO The current file path this bat file is executing in is the following:
ECHO %CurrentDir%
Pause
Para Windows, cdpor sí solo le mostrará el directorio de trabajo actual.
Para sistemas UNIX y workalike, pwdrealizará la misma tarea. También puede usar la $PWDvariable de shell debajo de algunos shells. No estoy seguro de si Windows admite obtener el directorio de trabajo actual a través de una variable de shell o no.
%cd%
En Windows:
CHDIR Muestra el nombre o cambia el directorio actual.
En Linux:
PWD Muestra el nombre del directorio actual.
Según la pregunta de seguimiento (almacenar los datos en una variable) en los comentarios a la publicación de chdir, apuesto a que quiere almacenar la ruta actual para restaurarla después de cambiar los directorios.
El usuario original debe mirar "pushd", que cambia el directorio y empuja el actual a una pila que se puede restaurar con un "popd". En cualquier shell de cmd de Windows moderno, ese es el camino a seguir al hacer archivos por lotes.
Si realmente necesita tomar la ruta actual, las cáscaras de cmd modernas también tienen una variable% CD% que puede guardar fácilmente en otra variable como referencia.
Cree un .batarchivo debajo System32, nombremos que copypath.batel comando para copiar la ruta actual podría ser :
echo %cd% | clip
Explicación:
%cd% te dará la ruta actual
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.
Ahora copyclipestá disponible desde todas partes.
@echo off
for /f "usebackq tokens=*" %%x in (`chdir`) do set var=%%x
echo The currenct directory is: %var%
Pero, por supuesto , la respuesta de gmaran23 es la más fácil.
tokens=*arreglos que.
En un símbolo del sistema de Windows, chdiro cdimprimirá la ruta completa del directorio de trabajo actual en la consola.
Si queremos copiar la ruta, entonces podemos utilizar: cd | clip.
En Windows, escriba cdla ruta actual de trabajo.
En Linux, pwdpara la ruta de trabajo actual.