我可以使用findstr来搜索指定字节/位置之间的字符串..
例如,我有一个文本文件,每行最多1000个字节
我想在字节数50到100之间搜索一个字符串的行吗?
答案 0 :(得分:0)
使用正则表达式(正则表达式)解决问题相对容易。但不幸的是,FINDSTR对正则表达式的支持非常有限。它没有解决问题所需的功能。
您可以使用grep for Windows代替FINDSTR,但这需要下载。
假设您想在“file.txt”中的任意一行的位置50和100之间找到my string
:
grep "^.\{49,91\}my string" file.txt
另一个选择是切换到另一种脚本语言,完全支持正则表达式。 JScript,VBScript和PowerShell都可以用来轻松解决这个问题。
纯本机批处理解决方案需要一个非平凡的脚本,并且速度要慢得多。这是一个可能的解决方案:
@echo off
setlocal disableDelayedExpansion
for /f delims^=^ eol^= %%L in (file.txt) do (
set "ln=%%A"
setlocal enableDelayedExpansion
set "ln=!ln:~49,51!"
if "!ln:my string=!" neq "!ln!" echo !ln!
endlocal
)