代码之家  ›  专栏  ›  技术社区  ›  erik

从单行Perl脚本检索值

  •  1
  • erik  · 技术社区  · 15 年前

    我正试图为一些数据解析输出文件,但在将值返回到我的Windows shell时遇到问题。

    我要做的只是使用一个简单的正则表达式返回一个值,并将其存储到shell变量中。

    我现在有这样的东西:

    %VAL% = %PERL% -e '$tmp="Value: 1000"; if ($tmp =~ /Value:\s(\d+)/) { print $1; }'
    

    哪里 %VAL% 我想把里面的东西还给你 $1 ,和 %PERL% 指向perl.exe的本地副本。

    有人能指出正确的方法吗?

    2 回复  |  直到 15 年前
        1
  •  2
  •   cristis    15 年前

    编辑:它比Unix更丑:

    for /f "tokens=*" %i in ('perl -e "$tmp=\"Value: 1000\"; if ($tmp =~ /Value:\s(\d+)/) { print $1; }"') do set VAL = %i
    

    或使用 set /p 中间文件:

    %PERL% -e '$tmp="Value: 1000"; if ($tmp =~ /Value:\s(\d+)/) { print $1; }' > file.txt
    set /p VAL = < file.txt
    del file.txt
    

    从 Silly Batch File Tricks

        2
  •  0
  •   Aif    15 年前

    为什么不在脚本中创建变量?看见 env_var 在win32 perl wiki上。

    推荐文章