使用批处理文件和Notepad++查找文本

4
我需要在使用Notepad++打开文件时查找文件中的文本。
例如,我需要查找文本“ABC”。但是,我真正需要的文本是紧随“ABC”后面的两个数字。因此,我有一个批处理文件,使用Notepad++打开特定文件时会运行该文件。它需要查找ABC,然后查看直接跟在其后面的2个数字,并将它们填充到一个变量中。
一些文件可能包含ABC12,而其他文件可能包含ABC21等。
我目前所拥有的只有以下内容:
%echo off
"C:\Program Files (x86)\Notepad++\notepad++.exe" %1 
FIND [/I] "ABC"

它可以正常打开文件,但无法搜索。请帮忙!谢谢!

你的“FIND”命令将无法操作Notepad++的内容。它们将在不同的环境中运行。您需要使用NotePad自己的脚本,这似乎可以通过Python插件实现。 - PM 77-1
我对脚本进行了一些编辑。 - Endoro
1个回答

7

这是一个非常好的问题!尝试以下方法:

@ECHO OFF &SETLOCAL
set "LineNr="
for /f "tokens=1*delims=[]" %%a in ('^<"%~1" find /i /n "%~2"') do if not defined LineNr (
    set "LineNr=%%a"
    SET "Line=%%b"
)
if not defined LineNr (
    set "LineNr=1"
    SET "Row=1"
    GOTO :launch
)
CALL SET "Right=%~2%%Line:*%~2=%%"
CALL SET "Line=%%Line:%Right%=%%"
FOR /f "delims=:" %%a in ('"(echo("%Line%"&@echo()|findstr /o $"') do SET /a Row=%%a-4
:launch
START /b CMD /c ""%ProgramFiles(x86)%\Notepad++\notepad++.exe" -n%LineNr% -c%Row% "%~1""

调用批处理程序:
script.bat "D:\PATH\FILE.TXT" "STRING TO SEARCH"

notepad++ command line switches


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接