# Cmd Example

Consideremos un ejemplo de robot que demuestra el principio de trabajo con la línea de comandos. En este caso, los comandos se cargan desde un archivo xlsx y se ejecutan de manera aleatoria.

El proyecto del robot consta de un diagrama y un archivo xlsx. Así, si describimos paso a paso, este robot funciona de la siguiente manera:

1. Carga la Tabla de Datos desde el archivo xlsx.
2. Con el bloque "Número aleatorio" selecciona una fila de la tabla.
3. Abre una ventana con la línea de comandos.
4. Ejecuta el comando de la fila seleccionada anteriormente de la tabla.
5. Después de ejecutar el comando, cierra la ventana con la línea de comandos.

El diagrama del proyecto se ve así (para mayor comodidad, los bloques del diagrama están numerados):

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdvsz8MZQ4CEr84Vf-zODTGgTUeJp5VhJYlp-eb9xtqL4ORfhTYpE1v3Vh-UUhpGEe4Ou0byrHN_qNdRtawS1IsYgqxHVOAp3xyOj8g2Tq0wgHL58JoYx8KaXhBtrL4mCwNm3rrMoiQwQWqqwEadxsif6o?key=6b-lfrni6g0pefzDtoJOiw" alt=""><figcaption></figcaption></figure>

1. **Bloque "Inicio"** (de este bloque comienza cualquier diagrama).
2. **Bloque "Cargar Tabla de Datos"** permite cargar la tabla de datos desde un archivo xlsx. Para este bloque se especifican las siguientes propiedades:

* Ruta al archivo (ruta al archivo xlsx desde el cual se debe cargar la información en la Tabla de Datos);
* Encabezado (si se activa la opción, la primera fila de la tabla se utilizará como encabezado);
* Hoja (ID o nombre de la hoja cuyos datos se deben guardar en la Tabla de Datos).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXe7wDEcBVup9HCqs5hmq7Ebe8NgyBxaYkXuKNMvfrLM11NsFvxbJvNbKZySeuNB-fnWcxkKgDxnkEM-B3tEwCPLStY850pnV8eax9mahQNK0mFAHLAJO_nxrKGzOD6sXA3VO3cwQsvmNHVDqBCSibqFJIAZ?key=6b-lfrni6g0pefzDtoJOiw" alt=""><figcaption></figcaption></figure>

3. **Bloque "Número aleatorio"** genera un número aleatorio con parámetros dados. Para este bloque se especifican las siguientes propiedades:

* Valor mínimo (valor mínimo para el número aleatorio);
* Valor máximo (valor máximo para el número aleatorio);
* Paso (paso del número aleatorio).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXe7P4JTkyKqtp34defivCP2cJrR3rT8cVgQmyr7iXrZ2D-k4bAY88ZVH9GkWX0APpIuseTFJ88AANKVrNt0Un1FyUrE6LsTr0cTLeCR0r0CxbYoWHEV-1XqKKxsPrquQO7NqlxQhyYQSPxB8gg-jBTndW7u?key=6b-lfrni6g0pefzDtoJOiw" alt=""><figcaption></figcaption></figure>

4. **Bloque "Asignar valor a la variable"** establece nuevos valores para una o varias variables. En este caso, en las propiedades se especifica un valor que se debe asignar a una variable específica.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfaZipL3olPn7IQAZkgH6S_hPGof5BJPP_0eLwuiC3ag8StLjP3AEiXngD9Y2DrbVcr5_72Y5xXeyBStPtEJut1AVE8ARtSTdh1nzl7OJ2hvIlhyV7Jd129dKUYe0i5FING0s0aoRAX2C0gXOys6gsiw0YW?key=6b-lfrni6g0pefzDtoJOiw" alt=""><figcaption></figcaption></figure>

5. **Bloque "Iniciar aplicación"** inicia la aplicación especificada con los parámetros dados. Para este bloque, en las propiedades se especifica la ruta a la aplicación (nombre de la aplicación estándar).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdOJe4a3xRk-bDNqnyjtP4dGcAE_euXnS07OTqEwVLsXve7JhTs0hOR5wo_O6NlFycYCcMk5p69DfrXPBdcN5tlHTCYfu7P4ktQtUXyyArwtl95bsauRjhK8SRHERVJ2iYdvPVbPT--CrFVW7YxyvERsEoy?key=6b-lfrni6g0pefzDtoJOiw" alt=""><figcaption></figcaption></figure>

6. **Bloque "Pausa"** detiene la ejecución del script durante un tiempo determinado. Para este bloque se especifican las siguientes propiedades:

* Unidad de medida (unidad de medida en la que se establece la duración de la pausa);
* Duración (número de segundos durante los cuales se detendrá la ejecución del script).
* Iniciar inmediatamente (si se activa la opción, la pausa se aplicará inmediatamente en la primera pasada de este bloque desde el inicio del script del robot).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXf679Q19xPtYgbL6MJ4vA-gROKnNUqS7JsYprX3EhWQn0K9WB1LsiQjOBQ9kpptiVdrlbnXRCDWcyiqgep83NBbRg1Oir2-nNJPgeO6SnX-LlesCcJnU-C2H-p6FpEuxfiCXhDo_nTO-WigaWoo9VrnypI?key=6b-lfrni6g0pefzDtoJOiw" alt=""><figcaption></figcaption></figure>

7. **Bloque "Presionar teclas"** emula la pulsación de teclas en el teclado. Para este bloque se especifican las siguientes propiedades:

* Teclas (texto o teclas que se deben emular);
* ID del proceso (variable que almacena el identificador de la aplicación);
* Interactivamente (si se activa la opción, se insertan pausas entre las pulsaciones de teclas);
* Tiempo de pausa (duración de la pausa entre las pulsaciones de teclas en milisegundos).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdhNaN3RiT3TWvOHCqsq8-dqT8y8tlhDTguvEQP28RGen9ddgcGwaOFPqqdofB762_LapI45QasZAxukpnKrHxQbXU1FqAJ1lci2hoy1o5Kivb9TI6qsq-Cyj-klHJYjN1_XJ9QOwritgn_3hlaR6UzlEoc?key=6b-lfrni6g0pefzDtoJOiw" alt=""><figcaption></figcaption></figure>

8. **Bloque "Pausa"** detiene la ejecución del script durante un tiempo determinado. Para este bloque se especifican las siguientes propiedades:

* Unidad de medida (unidad de medida en la que se establece la duración de la pausa);
* Duración (número de segundos durante los cuales se detendrá la ejecución del script).
* Iniciar inmediatamente (si se activa la opción, la pausa se aplicará inmediatamente en la primera pasada de este bloque desde el inicio del script del robot).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfiVmBpjRNKcE50HnsNr2A393tWtfv9jw8F6WbcUZROZQo_YyY9nSqlSOrvAmr3t5bhxAbAY-kjJ_UJKet56NE9j_ld4WstaTc604Etnl5R44jUtSqP-usqB5WcK7a4WS9Mi5hB3DuMc5KgsHCxFonYf9RL?key=6b-lfrni6g0pefzDtoJOiw" alt=""><figcaption></figcaption></figure>

9. **Bloque "Cerrar aplicación"** cierra la aplicación especificada. Para este bloque se especifica la propiedad "ID del proceso" (variable que contiene el identificador del proceso que se debe cerrar).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXe7lxCnISUh50NckXWlWYwsfWQ0K4mtfR7bO83ZWiuDUn0HBVhlixpUQgSvZYpRYI166AagRCV2Aa0sOTbUmxJc1QCx7UFC4qbaAqKXg4qJrxG3yPVDLz4fT7hUIXAEvP4vwKKUityUVWgPrFKagA661Xg?key=6b-lfrni6g0pefzDtoJOiw" alt=""><figcaption></figcaption></figure>

10. **Bloque "Fin"** (con este bloque finaliza la ejecución del script o se devuelve el diagrama del subproceso al proceso principal).
11. **Bloque "Log"** permite registrar mensajes arbitrarios y/o valores de variables durante la ejecución del script del robot. Para este bloque se especifica la propiedad "Valor". Entre comillas se indica una constante de texto, y el nombre de la variable comienza con el símbolo $. Es decir, este bloque registra en el log del robot un mensaje de error en la ejecución.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXffXvYmUY961z1r6nY6jb-aMAi9aki6D3hnZcQNVJkjs6z_q288_bf-cVaNgyqJ-h8lqhPORsQyws99YMHVMDYbFJR5jOQi-zOlBI1vhpSrhcPA_JzvyANd2gfya3ZLjuvmz6RDm3cRMulxW1j9eLJ192Bk?key=6b-lfrni6g0pefzDtoJOiw" alt=""><figcaption></figcaption></figure>

12. **Bloque "Fin"** (con este bloque finaliza la ejecución del script o se devuelve el diagrama del subproceso al proceso principal).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.sherparpa.ru/es/sherpa-rpa/sherpa-designer/primery-robotov/cmd-example.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
