Professional Documents
Culture Documents
1) línea de comandos
2) entrada estándar
SET /P variable=[mensaje]
El modificador /P permite establecer el valor de una variable para una línea de entrada
escrita por el usuario. Muestra el mensaje antes de leer la línea de entrada.
NOTA: Funciona a partir de W2000, y deben estar habilitadas las extensiones de comando.
grosero.bat
@echo off
set /p nombre=¿Cómo te llamas?
echo.
echo nunca me gustó el nombre de %nombrex%
Por recibir el argumento desde entrada estándar, podemos introducir la información a través de
de un pipe, o redirigida desde un archivo o dispositivo:
X:\pruebas>grosero.bat
¿Cómo te llamas? Paco Pico
Podemos introducir datos al fichero .bat desde línea de comandos, que serán almacenados en
las denominadas variables posicionales:
En %0 se almacena el nombre del comando
En %1 se guarda el valor del primer argumento
%0, %1, %2, ..., %9
En %2 se guarda el valor del segundo argumento, y así
1 de 3
sucesivamente.
El parámetro %* contiene la lista con todos los argumentos introducidos desde línea de
comandos.
El siguiente programa repite lo que introducimos desde línea de comandos (excepto el nombre
del comando):
repite.bat
@echo %*
Y sin mucho esfuerzo podemos dar la vuelta a una frase de hasta 9 palabras:
reverse.bat
@echo %9 %8 %7 %6 %5 %4 %3 %2 %1
SHIFT
En el ejemplo anterior, vemos que si la frase tiene más de 9 palabras, reverse no las visualiza:
Cuando los argumentos desde línea de comandos son más de 9, es necesario irlos
desplazando si queremos leer todos.
El comando SHIFT desplaza el valor de todos los argumentos posicionales un lugar hacia la
izquierda:
reverse.bat
@echo off
echo %9 %8 %7 %6 %5 %4 %3 %2 %1
shift
echo %9 %8 %7 %6 %5 %4 %3 %2 %1
shift
echo %9 %8 %7 %6 %5 %4 %3 %2 %1
2 de 3
X:\>reverse En un lugar de la Mancha de cuyo nombre no quiero acordarme ...
nombre cuyo de Mancha la de lugar un En
no nombre cuyo de Mancha la de lugar un
quiero no nombre cuyo de Mancha la de lugar
SHIFT /2
Realiza el desplazamiento a partir del argumento %2, dejando fijos los parámetros %0 y %1.
3 de 3