从变量中去除尾随空格

Strip trailing spaces from variable

Windows 10 批处理文件

正在尝试从变量中去除尾随空格。这是我目前所拥有的...

For /F "Tokens=1* Delims= " %%A In ('WMIC Path Win32_VideoController Get Name^,DriverVersion^|FindStr /I "Intel"') Do @Set GFXNAM=%%B&SetGFXVER=%%A

有了这个,我得到了正确填充的两个变量......

GFXNAM=[英特尔(R) 超高清显卡 630 ]
GFXVER=[27.20.100.9316]
(已添加括号以可视化变量中的尾随空格)

但是,我需要一种方法来 trim GFXNAM 变量末尾的那些尾随空格。不幸的是,由于 GFXNAM 变量值中的括号,我无法使用 for 循环以及沿着...

的变量操作
(set NEWGFXNAM=%GFXNAM:~0,-1%)

由于那些可爱的毒字,它失败了。我需要做的就是能够从该 GFXNAM 变量中去除那些尾随空格。本来不应该这么难的,就是看不出来。

如有任何帮助,我们将不胜感激。

提前致谢。

这是一个使用我的评论的简单示例,并且基于您的 PC 中只有一个英特尔显卡:

@Echo Off
SetLocal EnableExtensions
Set "GFXNam="
Set "GFXVer="
For /F Tokens^=6^ Delims^=^" %%G In ('%SystemRoot%\System32\wbem\WMIC.exe Path
 Win32_VideoController Where "Name Like 'Intel%%'" Get Name^, DriverVersion
 /Format:MOF 2^>NUL') Do If Not Defined GFXVer (Set "GFXVer=%%G"
) Else Set "GFXNam=%%G"
Set GFX 2>NUL
Pause

如果您想检查它是否正确定义了变量,您可以将 Set GFX 2>NUL 替换为 If Defined GFXVer If Defined GFXNam Echo Name: [%GFXNam%], Version: [%GFXVer%]