none
Uso de comodines en un BAT RRS feed

  • Pregunta

  • Quiero hacer un script que haga una acción u otra en función de la primera letra del nombre del usuario que esté usando el equipo. 

    He creado éste código, pero no me funciona usando comodín en el nombre de usuario: 

    @echo off
    
    IF %USERNAME% == A* (GOTO A) ELSE (GOTO noA)
    
    
    :A
    echo Empieza con una A
    pause
    GOTO eof
      
    
    
    :noA
    echo No empieza con una A
    pause
    GOTO eof
    
    :eof

    ¿Es posible utilizar comodines en éste caso?

    Tks!

    jueves, 17 de mayo de 2012 10:48

Respuestas

  • El intérprete admite una sintaxis especial para extraer subcadenas de las variables de entorno, %VARIABLE:~inicio,longitud%, por lo que podrías usar %USERNAME:0,1% para obtener el primer carácter.

    Más información en SET /? y http://ss64.com/nt/syntax-substring.html


    Málaga (España). Cuanto más esmerada sea la redacción de los mensajes, mejor para todos. Gracias.

    • Marcado como respuesta alpo56 jueves, 17 de mayo de 2012 12:19
    jueves, 17 de mayo de 2012 11:51

Todas las respuestas

  • El intérprete admite una sintaxis especial para extraer subcadenas de las variables de entorno, %VARIABLE:~inicio,longitud%, por lo que podrías usar %USERNAME:0,1% para obtener el primer carácter.

    Más información en SET /? y http://ss64.com/nt/syntax-substring.html


    Málaga (España). Cuanto más esmerada sea la redacción de los mensajes, mejor para todos. Gracias.

    • Marcado como respuesta alpo56 jueves, 17 de mayo de 2012 12:19
    jueves, 17 de mayo de 2012 11:51
  • Muchas gracias Ramón! Ya funciona. 

    Por si hay algún interesado, queda así:

    @echo off
    
    SET primeraletra=%username:~0,1%
    
    IF %primeraletra% == a (GOTO A) ELSE (GOTO noA)
    
    
    :A
    echo Empieza con una A
    pause
    GOTO eof
      
    
    
    :noA
    echo No empieza con una A
    pause
    GOTO eof
    
    :eof

    jueves, 17 de mayo de 2012 12:20