从单行 Perl 脚本中检索值
我正在尝试解析输出文件中的某些数据,但在将值返回到 Windows shell 时遇到问题。
我想做的只是使用简单的正则表达式返回一个值,并将其存储到我的 shell 变量中。
我目前有这样的情况:
%VAL% = %PERL% -e '$tmp="Value: 1000"; if ($tmp =~ /Value:\s(\d+)/) { print $1; }'
其中 %VAL%
是我想要返回在 $1
中找到的内容的位置,而 %PERL%
指向 perl.exe 的本地副本。
有人可以指出这样做的正确方法吗?
I am attempting to parse an output file for some data, and am having problems returning the value to my Windows shell.
What I am trying to do is simply return a value using a simple regular expression, and store that into my shell variable.
I currently have something like this:
%VAL% = %PERL% -e '$tmp="Value: 1000"; if ($tmp =~ /Value:\s(\d+)/) { print $1; }'
where %VAL%
is where I'd like to return what was found in $1
, and %PERL%
points to a local copy of perl.exe.
Can somebody please point out the proper way of doing this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
编辑:它比 Unix 有点难看:
或者将
set /p
与中间文件一起使用:来自 愚蠢的批处理文件技巧
EDIT: It's a bit uglier than Unix:
Or use
set /p
with an intermediary file:From Silly Batch File Tricks
为什么不在脚本中创建变量?请参阅 win32 perl wiki 上的 env_var。
Why don't you create the variable inside the script? see env_var on win32 perl wiki.