【问题标题】:Stopping FOR /F command at first line of output (Windows batch)在输出的第一行停止 FOR /F 命令(Windows 批处理)
【发布时间】:2013-07-03 16:38:55
【问题描述】:

因此,我需要从 Accurev 流中提取最后一条推广消息,并将其放入 Jenkins 变量中以包含在 Jenkins 电子邮件中。我遇到的唯一问题是多行推广消息。我真的只想要提升消息的第一行,但这不是我在 FOR /F 命令中看到的:

FOR /F "tokens=1-25 delims=;" %i in ('accurev.exe hist -s <stream> -t now.1 ^|FIND "#"') DO @echo %i

使用多行提升消息,我得到以下输出:

# 这是一条多行推广消息 # 因为我的程序员需要包含 # 对他们工作的 CR 的准确描述。

那么,在收集第一行之后,有什么方法可以让我的 for 命令停止?

【问题讨论】:

    标签: windows for-loop batch-file cmd command


    【解决方案1】:

    用适用于 Windows 的 GNU grep 试试这个:

    FOR /F "delims=;" %i in ('accurev.exe hist -s <stream> -t now.1 ^|grep -m1 "#"') DO @echo %i
    

    【讨论】:

    • 批处理文件中的 grep 不是答案。甚至没有关闭
    【解决方案2】:
    FOR /F "tokens=1-25 delims=;" %i in ('accurev.exe hist -s <stream> -t now.1 ^|FIND "#"') DO @echo %i && goto:eof
    

    【讨论】:

    • 这不行: 1. 在命令提示符下你不能使用goto; 2.在批处理文件中你必须使用%%i而不是%i...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多