4

Notepad++ でファイルを開くときに、ファイル内のテキストを検索する必要があります。
たとえば、「ABC」というテキストを見つける必要があります。ただし、必要な真のテキストは、「ABC」に続く 2 つの数字です。そのため、メモ帳++を使用して特定のファイルをダブルクリックすると開くバッチファイルがあります。ABC を検索し、その直後の 2 桁を調べて変数に入力する必要があります。

ABC12 を含むファイルもあれば、ABC21 を含むファイルもあります。

私がこれまでに持っているのは次のとおりです。

%echo off
"C:\Program Files (x86)\Notepad++\notepad++.exe" %1 
FIND [/I] "ABC"

ファイルは正常に開きますが、検索はしません。助けてください!
ありがとう!

4

1 に答える 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++ コマンド ライン スイッチ

于 2013-09-20T15:44:33.933 に答える