2012-05-11 106 views
0

仅选择数我有了这种格式的文件:如何txt文件中使用命令行功能在Windows

<somecharacters> 1 <somecharacters> 
<somecharacters> 2 <somecharacters> 
<somecharacters> 4 <somecharacters> 
<somecharacters> 9 <somecharacters> 

我需要解析出最大的数字。我尝试使用FINDSTRFIND,但只是没有足够的经验与Windows命令行...

+0

在Perl或Python中这是微不足道的。你真的应该使用这个工具来完成这项工作。 –

+0

FIND和FINDSTR标识哪些行包含搜索字符串,但它们对解析出一个子字符串没有用处。可以''包含空格吗?例如, – dbenham

+0

可以包含h​​tml代码。是的,perl和python应该完成这项工作......我想我必须这样做。 –

回答

0

如果您的文件中的所有行是真正一致的格式如此,那么这应该工作(我用的属性而不是内部文本)

@echo off 
setlocal enableDelayedExpansion 
set maxPort=0 
for /f "tokens=6 delims=<./ " %%N in (test.txt) do (
    if %%N gtr !maxPort! set maxPort=%%N 
) 
echo maxPort=%maxPort% 

但是,如果你有一个看起来不同的是应该被忽略的附加线,你将要使用FINDSTR过滤掉你不想解析线。 FINDSTR命令将进入IN()子句中。 FINDSTR对正则表达式的支持有限,可能会满足您的需求。

+0

非常感谢!这真的很酷。 与此同时,我设法用变通办法做到这一点, 使用FINDSTR来过滤掉行,使用SED从linux中,通过isnstalling gnuwin32,只解析数字,然后使用更简单的FOR版本,实际上需要一个号码后的号码,在最后一个号码处停止,幸运的是最大号码,是的。 但是,谢谢,我会尝试你的解决方案! –

相关问题