CLI - 使用 for 命令时忽略一行
CLI - Ignore a line when using the for command
我正在尝试设置一个变量来识别笔记本电脑的品牌。
我正在使用命令
执行此操作
wmic csproduct 获取供应商
这给出了以下输出
供应商
联想
(空白)
因此,基于该命令,我按以下方式使用了 for 命令,尝试设置一个值为 'LENOVO'
的变量
for /f "skip=1 tokens=1 delims=" %i in ('wmic csproduct get vendor')
do set vendor=%i
但是,问题是 wmic 命令的输出实际上在 LENOVO 一词下产生了一个空行,因此我的变量被设置为空值。有没有办法阻止 for 命令解析第 3 行,因此一旦变量设置为 'lenovo'?
的值就停止
跳过功能运行良好,完全绕过第一行。但是,它似乎没有给我选项,例如,跳过第 1 行和第 3 行,但保留第 2 行。我已经尝试使用 EOL 参数来尝试忽略空行,但是 for 命令仍然读取空的第 3 行每一次。
非常感谢
有点古怪,但请尝试在您的行中使用以下内容。它将过滤掉 Vendor 行,然后按字母顺序排序,将空白行放在第一位。如果你真的需要定期做这样的事情,请检查一些 Unix 实用程序的 Windows 端口,如 sed 和 awk。
wmic csproduct get vendor | find /v /i "vendor" | sort
我正在尝试设置一个变量来识别笔记本电脑的品牌。
我正在使用命令
执行此操作wmic csproduct 获取供应商
这给出了以下输出
供应商
联想
(空白)
因此,基于该命令,我按以下方式使用了 for 命令,尝试设置一个值为 'LENOVO'
的变量for /f "skip=1 tokens=1 delims=" %i in ('wmic csproduct get vendor') do set vendor=%i
但是,问题是 wmic 命令的输出实际上在 LENOVO 一词下产生了一个空行,因此我的变量被设置为空值。有没有办法阻止 for 命令解析第 3 行,因此一旦变量设置为 'lenovo'?
的值就停止跳过功能运行良好,完全绕过第一行。但是,它似乎没有给我选项,例如,跳过第 1 行和第 3 行,但保留第 2 行。我已经尝试使用 EOL 参数来尝试忽略空行,但是 for 命令仍然读取空的第 3 行每一次。
非常感谢
有点古怪,但请尝试在您的行中使用以下内容。它将过滤掉 Vendor 行,然后按字母顺序排序,将空白行放在第一位。如果你真的需要定期做这样的事情,请检查一些 Unix 实用程序的 Windows 端口,如 sed 和 awk。
wmic csproduct get vendor | find /v /i "vendor" | sort