2

awk で次の行と同じことを行うように、findstr を利用する方法を見つけようとしています。

wk.exe "begin {temp=0}/^stringMarker/{temp=1}{if (temp==1)print$0}" %TEMP%\input.txt >%TEMP%\output.txt

これは私が今考えることができるすべてです:

@ECHO OFF
findstr /b /c:"Hello" Hello.bat > nul
if errorlevel 1 (
echo Search Failed
) else (
echo Search Sucessful
)

ご覧のとおり、コードの後半が欠落しています。stringMarker の後の行を取得し、それらをファイルにリダイレクトできるようにする方法を見つけるには、助けが必要です。

乾杯

4

1 に答える 1

0

可能であれば、gawkのWindowsポートを使用することをお勧めします。なんらかの理由でできない場合は、vbscriptが最適ですか?

findstrとcmdを使用する必要がある場合は、次のように機能するはずです。

find_thing.cmd "^stringMarket" in.txt > out.txt

find_thing.cmd

@echo off

if "%~1"=="" ((echo no arguments) && exit /b)
if "%~2"=="" ((echo insufficient arguments) && exit /b)

set query=%~1
set file_name=%~2

for /f "tokens=1,2* delims=:" %%a in ('findstr /r /n "%query%" "%file_name%"') do (
    echo %%b
    more +%%a "%file_name%"
    exit /b
)
于 2012-11-11T20:46:02.667 に答える