命令输出设置为变量
Command output set as variable
我一直在尝试制作一个脚本来安装当前的 nvidia 驱动程序,我已经走了很远,但还缺少一件事
我正在尝试使用 nvidia-smi 查找驱动程序版本,这是命令输出
C:\>nvidia-smi --query-gpu=driver_version --format=csv
driver_version
457.30
我一直在尝试在 %driver% 中设置 457.30 这是我目前得到的结果
FOR /F "tokens=* skip=1" %%g IN ('nvidia-smi --query-gpu=driver_version --format=csv') do (SET "driver=%%g")
我也尝试过与 findstr 的组合,但结果是一场灾难
for /F "tokens=* skip=1" %%g in ('nvidia-smi --query-gpu=driver_version --format=csv ^| findstr "."') do set driver=%%g
无论如何,%%g 和 %driver% return 为 empty。
echo %driver%
returns
C:\>echo
ECHO is on.
有什么想法吗?
感谢您的配合。
你的变量没有被设置,因为现在你的 nvidia-smi
命令正在抛出一个错误(奇怪的是到标准输出)但是 skip=1
正在跳过它所以没有什么可以设置变量到.
=
是字符串的默认分隔符之一,因此命令中的两个 =
符号都需要转义才能正确执行查询。
@echo off
for /F "delims=" %%g IN ('nvidia-smi --query-gpu^=driver_version --format^=csv ^| find "."') do set "driver=%%g"
echo %driver%
我一直在尝试制作一个脚本来安装当前的 nvidia 驱动程序,我已经走了很远,但还缺少一件事
我正在尝试使用 nvidia-smi 查找驱动程序版本,这是命令输出
C:\>nvidia-smi --query-gpu=driver_version --format=csv
driver_version
457.30
我一直在尝试在 %driver% 中设置 457.30 这是我目前得到的结果
FOR /F "tokens=* skip=1" %%g IN ('nvidia-smi --query-gpu=driver_version --format=csv') do (SET "driver=%%g")
我也尝试过与 findstr 的组合,但结果是一场灾难
for /F "tokens=* skip=1" %%g in ('nvidia-smi --query-gpu=driver_version --format=csv ^| findstr "."') do set driver=%%g
无论如何,%%g 和 %driver% return 为 empty。
echo %driver%
returns
C:\>echo
ECHO is on.
有什么想法吗?
感谢您的配合。
你的变量没有被设置,因为现在你的 nvidia-smi
命令正在抛出一个错误(奇怪的是到标准输出)但是 skip=1
正在跳过它所以没有什么可以设置变量到.
=
是字符串的默认分隔符之一,因此命令中的两个 =
符号都需要转义才能正确执行查询。
@echo off
for /F "delims=" %%g IN ('nvidia-smi --query-gpu^=driver_version --format^=csv ^| find "."') do set "driver=%%g"
echo %driver%