【发布时间】:2014-01-07 21:23:56
【问题描述】:
目前,我有一个批处理文件无法处理的大文本文件来搜索行。如果该文本文件中的行数不长,则下面的代码可以搜索值“9200.... 9300”。 甚至问题还在于这段代码返回的值与 9200 在同一行中......我只想将值 9200 范围裁剪为 9300
但每当我将它用于大型文本文件(500MB)时,它都会给出奇怪的字符。我想我需要 VBScript 才能找到这个数字,我会在一条消息中显示它。
代码是
for /f "usebackq delims=* tokens=5" %i in (`findstr "9201.. 9200.." data.mud`) do @echo %I
谢谢。
【问题讨论】:
-
你能举一个输入和期望输出的例子吗?另外,你得到的“奇怪的角色”是什么?输入文件可能是 Unicode 编码的还是二进制的?
-
感谢 Ansgar 的回复。它是 Unicode 拉丁字符。如果您看到 Data.mud 不是文本文件,但可以在记事本中打开。尝试编写一个脚本来搜索 9200 到 9200 的范围。如果 for /f "usebackq delims=* tokens=5" %i in (
findstr "9201.. 9200.." data.mud) 执行 @echo -
现在我更加困惑了。该文件是 Unicode(文本)文件吗?或者它不是文本文件(即二进制文件)? “9201 到 9200 的范围”是什么意思?您是否希望脚本输出两个字符串“9201”和“9200”之间的所有内容?如果是这样,9201 是否总是在 9200 之前?
-
对不起 Ansgar,它是一个文本文件。它的范围在 9201 到 920150 之间。脚本应该在这些数字之间找到一个数字范围并将其输出。谢谢
-
那么,对于两个数字 9201 和 9500,您希望输出是
data.mud中介于 9201 和 9500 之间的任何数字吗?
标签: vbscript