我正在尝试解析某些数据的输出文件,并且在将值返回到我的Windows shell时遇到问题。
我要做的只是使用简单的正则表达式返回一个值,并将其存储到我的shell变量中。
我目前有这样的事情:
%VAL% = %PERL% -e '$tmp="Value: 1000"; if ($tmp =~ /Value:\s(\d+)/) { print $1; }'
其中%VAL%
是我要返回$1
中找到的内容的地方,%PERL%
指向perl.exe的本地副本。
有人可以指出这样做的正确方法吗?
答案 0 :(得分:2)
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
答案 1 :(得分:0)
为什么不在脚本中创建变量?请参阅win32 perl wiki上的env_var。