【问题标题】:Batch - Search a precise line in a file批处理 - 搜索文件中的精确行
【发布时间】:2013-08-24 16:36:32
【问题描述】:

我有一个很长的游戏配置,我想以批处理屏幕的形式进行概述。
我正在尝试做的是批处理脚本查看指定的行,然后选择一个信息。
例如:

税率:15
管理员率:20
调制率:18

我希望脚本在第 2 行中查找 13 位数字 (Admin Rate :) 并将输出设置为变量。 比如

for /f in delim=2;13 in ('config.yml') do set adminrate


所以最后我可以清楚地输出所有的配置。

回显管理率:%adminrate%

【问题讨论】:

    标签: variables search for-loop batch-file


    【解决方案1】:

    试试这个:

    for /f "tokens=3delims=: " %%a in ('findstr /c:"Admin Rate" "config.yml"') do set "adminrate=%%a"
    echo(%adminrate%
    

    【讨论】:

    • 我对 for 命令不是很熟悉,但它有什么作用(所以我可以自定义它..)?
    【解决方案2】:

    这只是选择第二行,如果需要的话。

    EDITED 返回整行。

    @echo off
    for /f "tokens=1,* delims=]" %%a in ('find /n /v "" ^< "config.txt" ^| findstr "^\[2\]" ') do set "variable=%%b"
    echo "%variable%"
    pause
    

    请注意,如果所选行以 ] 字符开头,则它们将从字符串中删除。

    【讨论】:

    • 如果能选择整行就好了!当我使用它时,它只选择第一个字符......我用这个文件来测试它:link 我更改了findstr "^\[23\]",所以它会选择第 23 行,但它最终只有括号"" .有什么想法吗?
    • 我已将其更改为返回整行。
    猜你喜欢
    • 1970-01-01
    • 2014-05-01
    • 1970-01-01
    • 2016-09-04
    • 2022-11-28
    • 1970-01-01
    • 1970-01-01
    • 2010-11-29
    • 2010-09-19
    相关资源
    最近更新 更多