una por poner ordenar marcar fecha etiquetas etiqueta detalles como carpetas buscar aƱadir archivos archivo agregar windows batch-file current-dir

windows - poner - Obtener el directorio de archivos por lotes actual



como poner etiquetas a archivos (3)

En primer lugar, vi este tema pero no pude entenderlo.

Pregunta:

Hay un archivo por lotes en D:/path/to/file.bat con el siguiente contenido:

echo %cd% pause

La salida es:

C:/

Debe ser D:/path/to

¿Qué estoy haciendo mal?


Dentro de su archivo .bat:

set mypath=%cd%

Ahora puede usar la variable %mypath% para hacer referencia a la ruta del archivo al archivo .bat . Para verificar que la ruta es correcta:

@echo %mypath%

Por ejemplo, un archivo llamado DIR.bat con los siguientes contenidos

set mypath=%cd% @echo %mypath% Pause

ejecutar desde el directorio g:/test/bat hará eco de esa ruta en la ventana de comandos de DOS.


La variable de solo lectura %CD% mantiene la ruta de la persona que llama al lote, no la ubicación del archivo por lotes.

Puede obtener el nombre de la secuencia de comandos por lotes como lo escribió el usuario con %0 (por ejemplo, scripts/mybatch.bat ). Las extensiones de parámetros se pueden aplicar a esto, por lo que %~dp0 devolverá la Unidad y la Ruta al script por lotes (por ejemplo, W:/scripts/ ) y %~f0 devolverá la ruta completa (por ejemplo, W:/scripts/mybatch.cmd ).

Puede referirse a otros archivos en la misma carpeta que el script por lotes usando esta sintaxis:

CALL %0/../SecondBatch.cmd

Incluso se puede usar en una subrutina, Echo %0 le dará la etiqueta de llamada, pero echo "%~nx0" le dará el nombre de archivo del script por lotes.

Cuando la variable %0 se expande, el resultado se incluye entre comillas.

Más sobre parámetros de lotes .


Muy simple:

setlocal cd /d %~dp0 File.exe