【发布时间】:2021-10-22 04:56:25
【问题描述】:
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]
(已添加括号以显示变量中的尾随空格)
但是,我需要一种方法来修剪 GFXNAM 变量末尾的那些尾随空格。不幸的是,由于 GFXNAM 变量值中的括号,我无法使用 for 循环以及沿以下行的变量操作...
(set NEWGFXNAM=%GFXNAM:~0,-1%)
由于那些可爱的毒字符,它失败了。我需要做的就是能够从 GFXNAM 变量中去除那些尾随空格。应该没那么难,只是我看不出来。
任何帮助将不胜感激。
提前致谢。
【问题讨论】:
-
不要将表输出用于 WMIC 命令。查看使用
/Format选项的可用选项,即/Format:List、/Format:CSV、/Format:MOF。 -
好吧,如果我使用 PowerShell 而不是批处理文件,那将非常有效。 (笑)
-
我在几乎所有的 WMIC 批处理脚本中都使用了它们,最常见的是 MOF,猜猜看,我的所有脚本都能完美运行。
-
抱歉,我的评论并不是负面或不正确的。
-
那是因为
list会在不同的行输出每个结果,所以findstr只会匹配包含字符串Intel的行!无论如何,您不需要为此使用findstr.exe,WMI 已经允许 WQL 查询,因此请使用它来选择仅以字符串Intel开头的Name。如果不出意外的话,在流程的上层进行过滤比以后更有效。
标签: batch-file cmd windows-10