¿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 cd
sin 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 set
comando ( 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, cd
por sí solo le mostrará el directorio de trabajo actual.
Para sistemas UNIX y workalike, pwd
realizará la misma tarea. También puede usar la $PWD
variable 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 .bat
archivo debajo System32
, nombremos que 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 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, chdir
o cd
imprimirá la ruta completa del directorio de trabajo actual en la consola.
Si queremos copiar la ruta, entonces podemos utilizar: cd | clip
.
En Windows, escriba cd
la ruta actual de trabajo.
En Linux, pwd
para la ruta de trabajo actual.