script run from files example commands batch bat windows batch-file command-line cmd

windows - files - run bat file from cmd



Comando de shell de Windows para obtener la ruta completa al directorio actual? (12)

¿Existe 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?


Citar 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% - expands to the current directory string. parte.


En Unix?

pwd


En Windows escriba cd para la ruta actual de trabajo en Linux pwd para la ruta de trabajo actual


En base a la pregunta de seguimiento (almacenar los datos en una variable) en los comentarios a la publicación chdir, estoy apostando a que quiere almacenar la ruta actual para restaurarla después de cambiar los directorios.

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

Si realmente necesita tomar la ruta actual, las capas modernas de cmd también tienen una variable% CD% que puede guardar fácilmente en otra variable como referencia.


En el símbolo del sistema de Windows, chdir o cd imprimirán la ruta completa del directorio de trabajo actual en la consola. Si queremos copiar la ruta, podemos usar: cd | clip cd | clip .

Gracias.


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, el 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 variable de shell $PWD bajo 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.


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 SET var = %cd% lugar de SET var=%cd% , a continuación está lo que sucede. Gracias a jeb.

Capturar el directorio actual desde un archivo por lotes


En Windows:

CHDIR Muestra el nombre o cambia el directorio actual.

En Linux:

PWD Muestra el nombre del directorio actual.


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


@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.