.BAT = Cambiar la ruta de %~dpnx0

micromega -  
 micromega -
Hola,

Estoy usando este código
set currentpath=%~dpnx0
para recibir la ruta de donde se encuentra el archivo .bat.

Sin embargo, me gustaría poder moverme a partir de esa ruta para usar otra ruta.

Ejemplo: el archivo ".bat" está en F:\Mon\Dossier 1\fichier.bat
la orden set currentpath=%~dpnx0 me da bien esa ruta, pero me gustaría ir a F:\Mon\Dossier 2\Dossier 3\fichier.exe

¿Cómo puedo cambiar de carpeta a partir de ahí?

Gracias

4 respuestas

  1. codeurh24 Mensajes publicados 760 Fecha de registro   Estado Miembro Última intervención   123
     
    Hola.

    currentPath es una variable creada por set.
    currentPath es una variable afectada por otra variable ms-dos
    que devuelve la ruta y su archivo.
    d representa la letra de la unidad
    p representa la ruta del archivo
    n representa el nombre del archivo
    x representa la extensión del archivo.

    Para modificar esta ruta es necesario obtener la ruta sin el archivo.
    ~dp0

    una vez obtenida la ruta por la variable ~dp0 se añaden dos puntos para subir un directorio.
    ~dp0..\
    En el directorio superior se especifica la carpeta en la que se desea colocar, seguido del nombre del archivo si se desea. En mi caso un archivo html
    %~dp0..\mars-radio-dnb-2\index.html

    Para conservar la variable currentPath he creado otra variable
    llamada cheminAuxiliare y le he asignado la ruta que deseaba.

    Basta con colocar echo delante de esta variable para mostrarla o, si no, quitar echo para lanzar el programa. Aquí en mi caso eso lanza una página html.

    @echo off
    set currentpath=%~dp0
    set cheminAuxiliare=%~dp0..\mars-radio-dnb-2\index.html
    %cheminAuxiliare%
    pause
    1
    1. Mars Radio DNB Mensajes publicados 13761 Fecha de registro   Estado Colaborador Última intervención   1 439
       
      gracias mi amigo^^ por venir al rescate!
      la unión hace la fuerza^^ o la unión hace la fuerza, ja ja no sé más ja ja mdr.............
      0
  2. Mars Radio DNB Mensajes publicados 13761 Fecha de registro   Estado Colaborador Última intervención   1 439
     
    hola,
    ya no recuerdo, ha pasado mucho tiempo
    pero a partir de este camino crea un archivo que contenga las variables del camino que llamas con el comando call creo (tengo que verificar esta noche... si no has respondido entre tanto).

    ya no recuerdo pero si busco en mis códigos debería encontrarlo...

    --
    creo ser lo suficientemente inteligente para decir que no sé nada...
    0
  3. micromega
     
    Hola y gracias por tu ayuda!

    De hecho, la solución de codeurh24 parece funcionar. Gracias a ti.

    Sin embargo indicas "una vez que se obtiene la ruta mediante la variable ~dp0 se añaden los dos puntos para subir un directorio." >> 2 puntos para subir un directorio, pero si se desea subir 3 o 4 directorios por ejemplo, ¿funciona o hay otra técnica?
    0
    1. codeurh24 Mensajes publicados 760 Fecha de registro   Estado Miembro Última intervención   123
       
      subir un directorio ..
      subir de 2 directorios ..\..
      subir de 3 directorios ..\..\..
      subir de 4 directorios ..\..\..\..

      puedes jugar a eso con cd en línea de comandos
      cd ..
      0
    2. dubcek Mensajes publicados 18627 Fecha de registro   Estado Colaborador Última intervención   5 659
       
      hola
      para subir 3 niveles, añadir :\..\..\..
      0
  4. micromega
     
    ¡Entendido!

    Gracias por sus respuestas rápidas y eficaces.
    0