Creación de variables
¿Te encuentras usando la misma cadena de texto varias veces mientras trabajas con archivos por lotes?
Por ejemplo, si copias un archivo específico y luego lo mueves a una carpeta de destino, tendrás que escribir la misma ruta varias veces, lo que puede ser propenso a errores.
copy C:\Users\user\Documents\sample.txt C:\Users\user\Documents\copy\sample.txt
move C:\Users\user\Documents\sample.txt C:\Users\user\Documents\copied\sample.txt
Durante la copia y el movimiento, se escribió C:\Users\user\Documents\sample.txt
dos veces.
Esto no es un problema, pero escribir la misma cadena de texto varias veces puede causar errores tipográficos o hacer que la edición sea más difícil.
Para solucionar este problema, puede definir variables en archivos por lotes.
Al definir variables, no es necesario escribir la misma cadena de texto varias veces, lo que reduce la posibilidad de errores tipográficos.
Si reescribe el ejemplo anterior usando variables, se verá así:
set source=C:\Users\user\Documents\sample.txt
copy %source% C:\Users\user\Documents\copy\sample.txt
move %source% C:\Users\user\Documents\copied\sample.txt
Se asignó la variable source
a la cadena de texto C:\Users\user\Documents\sample.txt
, que se había escrito dos veces.
De esta manera, al escribir %source%
, se entiende que se refiere a C:\Users\user\Documents\sample.txt
.
En esta página, se explica cómo definir variables en archivos por lotes mediante el comando set
, y se presentan ejemplos concretos de cómo utilizarlas.
Cómo definir variables
Para definir una variable, se utiliza el comando set
.
set nombre_de_variable=valor
Después del comando set
, especifique el nombre de la variable y su valor.
No debe haber espacios antes o después del signo igual.
Opciones del comando set
Además de definir variables, el comando set
también puede aceptar la entrada del usuario al ejecutar el archivo por lotes mediante la especificación de opciones.
Opción /P
Al especificar la opción /P
, se puede aceptar la entrada del usuario.
set /P nombre_de_variable=mensaje_a_mostrar
El comando anterior no significa que se asigne la cadena de texto “mensaje a mostrar” a la variable “nombre_de_variable”.
Cuando se especifica la opción /P
, el comando set
acepta la entrada del usuario.
La parte “mensaje a mostrar” es el mensaje que se muestra en la pantalla cuando se acepta el valor que se almacenará en la variable.
Si ejecuta el archivo por lotes anterior, se mostrará lo siguiente:
El comando set
espera la entrada del usuario y no se ejecutará ninguna otra acción después de él.
Cuando el usuario ingresa un valor y presiona Enter, el valor ingresado se asigna a la variable y se ejecuta cualquier acción después del comando set
.
Ejemplos concretos de uso de variables
Concatenación de cadenas
Variables y cadenas
Para concatenar una variable y una cadena específica, no se necesita un operador, simplemente se escribe %nombre_de_variable%cadena
.
set source=C:\Users\user\Documents\sample
echo %source%.txt
Variables y variables
En el caso de variables y variables, se escribe %nombre_de_variable%%nombre_de_variable%
de la misma manera.
set source=C:\Users\user\Documents\sample
set extension=.txt
echo %source%%extension%
Cálculo de fórmulas matemáticas
Puede realizar cálculos matemáticos utilizando el comando set /A
para almacenar el resultado de una operación en una variable.
@echo off
setlocal
set x=0
for /L %%i in (1, 1, 10) do (
set /A x=x+%%i
)
echo %x%
endlocal
Al ejecutar el archivo por lotes anterior, se mostrará lo siguiente:
Uso de variables de entorno
En un archivo por lotes, además de las variables definidas por el usuario, también se pueden utilizar variables de entorno predefinidas.
Las variables de entorno son variables proporcionadas por Windows que almacenan información relacionada con el sistema operativo.
Lista de variables de entorno
Variable de entorno | Descripción |
---|---|
%CD% | Ruta del directorio actual |
%DATE% | Fecha actual |
%TIME% | Hora actual |
%RANDOM% | Número aleatorio entre 0 y 32767 |
%ERRORLEVEL% | Código de salida del comando anterior |
%USERNAME% | Nombre de usuario actual |
%COMPUTERNAME% | Nombre del equipo |
%OS% | Tipo de sistema operativo |
%PROCESSOR_ARCHITECTURE% | Tipo de procesador |
%NUMBER_OF_PROCESSORS% | Número de procesadores |
%SYSTEMROOT% | Ruta de la carpeta del sistema |
%TEMP% | Ruta de la carpeta temporal |
%PATHEXT% | Lista de extensiones de archivo ejecutable |
%PATH% | Ruta de archivos ejecutables |
%HOMEDRIVE% | Unidad de disco de la carpeta de inicio |
%HOMEPATH% | Ruta de la carpeta de inicio |
%USERPROFILE% | Ruta de la carpeta de usuario |
%APPDATA% | Ruta de los datos de la aplicación |
%PROGRAMFILES% | Ruta de los archivos de programa |
Es útil recordar %userprofile%
y otros comandos similares que se utilizan con frecuencia.
Ejemplos con variables de entorno
Crear un archivo en la carpeta de inicio del usuario
@echo off
setlocal
cd %userprofile%
dir
endlocal