EniDev

Guías sobre temas de bases de datos y programación


Project maintained by Hosted on GitHub Pages — Theme by mattgraham

VARIABLES EN BAT

CONTENIDO

Capturar los argumentos posicionales

1) Paso de parámetros a un archivo bat desde entrada estándar:

SET /P variable=[mensaje]

El modificador /P permite establecer el valor a la variable para una línea de entrada escrita por el usuario. Muestra el mensaje antes de leer la línea de entrada.

Ejemplo de uso:

@echo off
set /p nombre=¿Cómo te llamas? 
echo.
echo nunca me gustó el nombre de %nombrex%

nota: Podemos usar comillas en el mensaje que no serán visualizadas: set /p nombre="¿Cómo te llamas? "

Otra cosa es que también podemos recibir el argumento desde una entrada estándar introduciendo la información a través de de un pipe, o redirigida desde un archivo o dispositivo:

:: invocando al programa gresero.bat
echo Ferreolo Anastasio | grosero.bat

Anidar variables

Podemos anidar cualquier variable en otras variables. Por ejemplo:

@echo off

set POSTGRESROOT=C:\PostgreSQL
set POSTGRESCURRENT=%POSTGRESROOT%\12
set POSTGRESDATA=%POSTGRESCURRENT%\data
echo %POSTGRESDATA%
:: salida 👉 C:\PostgreSQL\12\data
pause

Variables posicionales

@echo off
echo nombre del script: %0
echo primer argumento: %1 
echo segundo argumento: %2
echo tercer argumento: %3
echo todos los argumentos: %*

pause>nul

Si quisieramos iterar sobre todo los argumentos, podemos hacerlo de la siguiente manera:

for %%x in (%*) do @echo %%x

Variables Doskey

Las combinaciones de caracteres que puede incluir son las siguientes:

Carácter Descripción
$G o $g Redirecciona la salida. utilice cualquiera de estos dos caracteres especiales para enviar la salida a un dispositivo o un archivo en lugar de la pantalla. Este carácter es equivalente al símbolo de redirección para salida (>).
$L o $l Redirecciona la entrada. Utilice cualquiera de estos dos caracteres especiales para leer la entrada desde un dispositivo o un archivo en lugar desde el teclado. Este carácter es equivalente al símbolo de redirección para la entrada (<).
$T o $t Separa los comandos. Utilice cualquiera de estos caracteres especiales para separar los comandos usando doskey. Estos caracteres especiales son equivalente a usar el ampersand (&) en una línea de comandos.