es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Salida del comando establecida como variable

He estado tratando de crear un script que instale el controlador de Nvidia actual, he avanzado bastante pero falta una cosa.

Estoy tratando de usar nvidia-smi para encontrar la versión del controlador y aquí está la salida del comando.

C:>nvidia-smi –query-gpu=driver_version –format=csv
driver_version
457.30

He estado intentando establecer 457.30 en %driver%. Esto es lo que tengo hasta ahora.

FOR /F “tokens=* skip=1” %%g IN (‘nvidia-smi –query-gpu=driver_version –format=csv’) do (SET “driver=%%g”)

También intenté una combinación con findstr pero eso resultó ser un desastre.

for /F “tokens=* skip=1” %%g in (‘nvidia-smi –query-gpu=driver_version –format=csv ^| findstr “.”‘) do set driver=%%g

En cualquier caso, %%g y %driver% aparecen como vacíos.

echo %driver%

devuelve

C:>echo
ECHO está activado.

¿Alguna idea?

Gracias por su cooperación.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que puede haber un problema con la captura adecuada de la salida del comando. Una sugerencia sería intentar redirigir la salida a un archivo temporal y luego leer desde ese archivo. Aquí tienes un ejemplo:

    nvidia-smi --query-gpu=driver_version --format=csv > temp.txt
    FOR /F "tokens=* skip=1" %%g IN (temp.txt) DO (SET "driver=%%g")
    

    Esto debería capturar la salida del comando en un archivo temporal llamado “temp.txt” y luego utilizar el bucle FOR para leer la segunda línea (que contiene la versión del controlador) en la variable “driver”.

    ¡Espero que esto ayude!

Comments are closed.