テキストファイルのエンコード方法によって異なります。ファイルがユニコードの場合、テスト方法がわかりません。
ただし、ファイルが ASCII 拡張 (1 文字あたり 1 バイト) の場合、バイト > 10 進数 127 の意味はコード ページに依存します。ファイルにキリル文字が含まれているかどうかはわかりませんが、英語以外の文字である可能性が高い 127 より大きいバイトが含まれているかどうかはわかります。
次のスクリプトは、Windows XP 以降で動作するはずです。何もダウンロードする必要はありません。
最初に、文字「A」のみで構成される、ファイルの長さ以上のファイルを作成します。次に、FC を使用してバイナリ比較を行い、結果を FINDSTR にパイプして、0x80 以上の値を探します。見つかった場合は ERRORLEVEL 1 を返し、そうでない場合は ERRORLEVEL 0 を返します。
@echo off
call :HasExtendedASCII %1 && (echo English) || echo Not English
exit /b
:HasExtendedASCII
setlocal enableDelayedExpansion
set "tempFile=%temp%\dummyFile%random%.txt"
<nul set /p "=A" >"!tempFile!"
set /a dummySize=1
for /l %%N in (1 1 32) do if !dummySize! lss %~z1 (set /a dummySize*=2 & type "!tempFile!" >>"!tempFile!")
fc /b "!tempFile!" %1|findstr /re " [89ABCDEF][0123456789ABCDEF]" >nul&& set rtn=1 || set rtn=0
del "!tempFile!"
exit /b %rtn%