.Bat = Reemplazar los espacios de una variable por _

micromega Mensajes publicados 141 Estado Miembro -  
dubcek Mensajes publicados 18627 Fecha de registro   Estado Colaborador Última intervención   -
Hola,

Necesitaría reemplazar los espacios de la ruta que me devuelve una variable, por unos " _ " (tecla 8):

"%Ruta%\Carpeta"

¿Es posible?

Gracias

5 respuestas

  1. jordane45 Mensajes publicados 30426 Fecha de registro   Estado Moderador Última intervención   4 830
     
    Hola,

    Con esto seguramente:

    Variable Editar/Sustituir

    Utiliza la sintaxis a continuación para editar y sustituir los caracteres asignados a una variable de cadena.

    Sintaxis
    %variable:StrToFind=NewStr%

    %~[param_ext]$variable:Param

    Clave
    StrToFind : Los caracteres que estamos buscando
    NewStr : Los caracteres con los que sustituir (si los hay)
    variable : La variable de entorno
    param_ext : Cualquier extensión de parámetro de nombre de archivo
    Param : Un parámetro de línea de comandos (p. ej. 1)


    https://ss64.com/nt/syntax-replace.html

    .
    --
    Atentamente,
    Jordane
    3
  2. dubcek Mensajes publicados 18627 Fecha de registro   Estado Colaborador Última intervención   5 659
     
    hola
    C:> set chemin=\a a\b b\c c\
    C:> set nc=%chemin: =_%
    C:> echo %nc%
    \a_a\b_b\c_c\

    1
  3. Usuario anónimo
     
    Hola,

    Si puedes guardar esta ruta en un archivo de texto después, puedo hacerlo en Python o en C si te interesa.
    0
  4. micromega Mensajes publicados 141 Estado Miembro 1
     
    Hola,

    Gracias por la respuesta.
    Tengo conocimientos bastante limitados en ".Bat", pero no tengo idea de cómo actuar directamente en el ".bat" sin tener que sacar la ruta a un archivo externo.
    Gracias de todos modos por la propuesta.
    0
  5. micromega Mensajes publicados 141 Estado Miembro 1
     
    Hola,

    La solución de Dubcek funciona perfectamente.

    Gracias por la ayuda.

    Último punto: Tengo un software que se ejecuta en línea de comandos.
    Cada vez, hay que indicarle la ruta del archivo a partir de la raíz del disco donde se encuentra (ej: "C:\Carpeta 1\Carpeta 2\Carpeta 3\Archivo")

    Si coloco este software de línea de comandos directamente en "Carpeta 2", ¿es posible hacerlo comenzar desde allí?
    (ej: "Carpeta 2\Carpeta 2\Archivo")?
    Por defecto no funciona (para tu información, lo estoy utilizando combinado con un ".bat".

    Gracias.
    0
    1. dubcek Mensajes publicados 18627 Fecha de registro   Estado Colaborador Última intervención   5 659
       
      Carpeta 2\Carpeta 2\Archivo no hay una \ delante, por lo tanto hay que estar en Carpeta 1
      es una ruta relativa
      0