(Inspired by this post)

@echo off
setlocal EnableDelayedExpansion
 
rem Iterate over each line outputted by `beet ls -p`
for /f "tokens=*" %%f in ('beet ls -p') do (
    set "f=%%f"
    echo "!f!"
 
    rem Get lyrics using `beet lyrics`
    for /f "delims=" %%L in ('beet lyrics -p "path:!f!" 2^>nul') do (
        set "lyrics=%%L"
    )
 
    rem Set the name for the .lrc file
    set "lrc=!f:~0,-4!.lrc"
 
    rem Check if lyrics are found and write to .lrc file
    if defined lyrics (
        echo "-> !lrc!"
        echo "!lyrics!" > "!lrc!"
    ) else (
        echo No lyrics found.
    )
)
 
endlocal