这取决于您的文本文件的编码方式。如果文件是 unicode,那么我不确定如何测试。
但是如果文件扩展为 ascii(每个字符 1 个字节),那么 bytes > decimal 127 的含义取决于代码页。您无法真正判断文件是否包含西里尔字母,但您可以判断它是否包含 >127 的字节,该字节可能是非英文字符。
以下脚本应该可以在 Windows XP 及更高版本上运行 - 无需下载任何内容。
它首先创建一个 >= 文件长度的文件,仅包含字符“A”。然后它使用 FC 进行二进制比较并将结果通过管道传输到查找值 >= 0x80 的 FINDSTR。如果找到,则返回 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%