【问题标题】:CLI - Ignore a line when using the for commandCLI - 使用 for 命令时忽略一行
【发布时间】:2015-07-02 21:14:07
【问题描述】:

我正在尝试设置一个变量来识别笔记本电脑的品牌。

我通过使用命令来做到这一点

wmic csproduct 获取供应商

这给出了以下输出

供应商
联想
(空白)

因此,基于该命令,我以下面的方式使用了 for 命令,尝试设置一个值为 'LENOVO' 的变量

for /f "skip=1 tokens=1 delims=" %i in ('wmic csproduct get vendor') 设置 vendor=%i

但是,问题是 wmic 命令的输出实际上在 LENOVO 字下产生了一个空白行,因此我的变量被设置为空白值。无论如何要停止 for 命令解析这第三行,因此一旦变量设置为 'lenovo' 的值就停止?

skip 函数工作正常,并且完全绕过了第一行。但是,它似乎没有让我选择说,例如,跳过第 1 行和第 3 行,但保留第 2 行。我已经尝试使用 EOL 参数尝试忽略空行,但 for 命令仍然读取空的第 3 行每一次。

非常感谢

【问题讨论】:

    标签: parsing for-loop command-line-interface command-prompt


    【解决方案1】:

    有点古怪,但请尝试在您的行中使用以下内容。它将过滤掉 Vendor 行,然后按字母顺序排序,将空行放在首位。如果您确实需要定期执行此类操作,请检查一些 Unix 实用程序(如 sed 和 awk)的 Windows 端口。

    wmic csproduct get vendor | find /v /i "vendor" | sort
    

    【讨论】:

    • 了不起的约翰。非常感谢你。我很高兴接受这个作为答案。
    猜你喜欢
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 2013-07-11
    • 2018-07-11
    • 2018-06-20
    • 2014-12-15
    • 1970-01-01
    相关资源
    最近更新 更多