Pregunta

¿Hay un comando de línea de comandos 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?

¿Fue útil?

Solución

Use cd sin argumentos si está usando el shell directamente, o % cd% si desea usarlo en un archivo por lotes (se comporta como un variable de entorno).

Otros consejos

Puede establecer una variable de lote / entorno de la siguiente manera:

SET var=%cd%
ECHO %var%

captura de pantalla de muestra de Windows 7 x64 cmd.exe.

ingrese la descripción de la imagen aquí

Update: si haces un SET var =% cd% en lugar de SET var =% cd% , abajo está lo que pasa. Gracias a Jeb.

ingrese la descripción de la imagen aquí

Capturando el directorio actual de un archivo por lotes

Cotice la ayuda de Windows para el comando 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.

Tenga en cuenta que % CD%: se expande a la cadena de directorio actual. .

¿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 podemos usar

cd

y para Linux

pwd

el comando está ahí.

Para Windows, cd solo mostrará el directorio de trabajo actual.

Para sistemas UNIX y similares, pwd realizará la misma tarea. También puede usar la variable de shell $ PWD debajo de algunos shells. No estoy seguro de si Windows admite la obtención del directorio de trabajo actual a través de una variable de shell o no.

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 (almacene los datos en una variable) en los comentarios a la publicación de chdir, estoy apostando a que desea almacenar la ruta actual para restaurarla después de cambiar de directorio.

El usuario original debe mirar " pushd " ;, que cambia el directorio y empuja el actual en una pila que se puede restaurar con un " popd " ;. En cualquier shell de cmd de Windows moderno es el camino a seguir cuando se crean archivos por lotes.

Si realmente necesitas capturar la ruta actual, entonces los modernos cmd shells también tienen una variable% CD% que puedes rellenar fácilmente en otra variable para referencia.

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

Pero, por supuesto , la respuesta de gmaran23 es mucho más fácil.

Cree un archivo .bat bajo System32 , permítanos darle un nombre copypath.bat . El 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 copyclip está disponible desde cualquier lugar.

En un indicador de comando de Windows, chdir o cd imprimirá la ruta completa del directorio de trabajo actual en la consola.

Si queremos copiar la ruta, podemos usar: cd | clip .

En Windows, escriba cd para la ruta actual de trabajo.

En Linux, pwd para la ruta de trabajo actual.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top