¿Cómo obtener el directorio actual para ejecutar el archivo por lotes desde el directorio actual? [duplicar]

4

Tengo que ejecutar un archivo por lotes (lunch.bat) que tiene el comando para ejecutar otro archivo por lotes (main.bat). Copié estos dos archivos en mi pendrive. Sé que la unidad de mi pendrive está más tarde en mi computadora, por eso puedo configurar el primer archivo por lotes (lunch.bat) para ejecutar otro lote en mi computadora. Pero cuando copio estos dos archivos en mi pendrive y los inserto en otra computadora, el primer archivo por lotes no puede ejecutar otro archivo por lotes. Entonces esto es un problema para mí. ¿Alguien puede ayudarme a obtener el comando de directorio actual como la función c ++ (GetCurrentDirectory) para ejecutar lotes desde cualquier computadora y desde cualquier unidad?

powermun50
fuente

Respuestas:

3

De Raymond Chen

La manera fácil es usar la pseudovariable% CD%. Se expande al directorio de trabajo actual.

set OLDDIR=%CD%
.. do stuff ..
chdir /d %OLDDIR% &rem restore current directory
Brad Patton
fuente
1

El comando por lotes cdescrito sin ningún parámetro devolverá el directorio de trabajo actual.

mnmnc
fuente
0

Pon este código en el lunch.batarchivo:

call %~dp0main.bat

Esto inicia main.batdesde la misma unidad y carpeta que lunch.bat, donde sea que esté.

Endoro
fuente