XIU2/CloudflareSpeedTest · warning

CFST 测速结果 IP 数量为 0,跳过下面步骤...

Error message

CFST 测速结果 IP 数量为 0,跳过下面步骤...

What it means

Guard in cfst_hosts.bat (the Windows hosts-file updater, a GBK-encoded file shown here as mojibake): after `echo.|cfst.exe -o "result_hosts.txt"`, `if not exist result_hosts.txt` prints 'CFST 测速结果 IP 数量为 0' and jumps to :STOP. CFST only creates the -o file when at least one IP survives its latency/speed tests, so a missing file equals zero usable IPs. The script intentionally leaves the hosts file unchanged instead of writing a blank/garbage IP.

Source

Thrown at script/cfst_hosts.bat:65

::�� nowip_hosts.txt �ļ���ȡ��ǰ Hosts ��ʹ�õ� Cloudflare CDN IP
set /p nowip=<nowip_hosts.txt
echo ��ʼ����...


:: ��� RESET �Ǹ���Ҫ "�Ҳ������������� IP ��һֱѭ��������ȥ" ���ܵ���׼����
:: �����Ҫ������ܾͰ����� 3 �� goto :STOP ��Ϊ goto :RESET ����
:RESET


:: ��������Լ����ӡ��޸� CFST �����в�����echo.| ���������Զ��س��˳����򣨲�����Ҫ���� -p 0 �����ˣ�
echo.|cfst.exe -o "result_hosts.txt"


:: �жϽ���ļ��Ƿ���ڣ����������˵�����Ϊ 0
if not exist result_hosts.txt (
    echo.
    echo CFST ���ٽ�� IP ����Ϊ 0���������沽��...
    goto :STOP
)

:: ��ȡ��һ�е���� IP
for /f "skip=1 tokens=1 delims=," %%i in ('more result_hosts.txt') do (
    SET bestip=%%i
    goto :END
)

:END

:: �жϸոջ�ȡ����� IP �Ƿ�Ϊ�գ��Լ��Ƿ�;� IP һ��
if "%bestip%"=="" (
    echo.
    echo CFST ���ٽ�� IP ����Ϊ 0���������沽��...
    goto :STOP
)
if "%bestip%"=="%nowip%" (

View on GitHub (pinned to 1da0c025d7)

Solutions

  1. Run cfst.exe manually in the script folder and confirm result_hosts.txt gets data rows; if 0 IPs, relax -sl/-tl in the script.
  2. Check that cfst.exe is present and not quarantined (Windows Security > Protection history).
  3. For scheduled tasks, set 'Start in' to the script directory so result_hosts.txt is created where the .bat looks.
  4. Refresh the candidate pool (-f ip.txt with a recent list, or re-download the release's bundled ip.txt/ipv6.txt).
  5. If the goal is auto-retry, follow the file's own comment and change `goto :STOP` to `goto :RESET` so a failed round is retried.

Example fix

:: before
echo.|cfst.exe -o "result_hosts.txt"
if not exist result_hosts.txt (
    echo.
    echo CFST 测速结果 IP 数量为 0,跳过下面步骤...
    goto :STOP
)

:: after — retry once with looser filters, using the file's own RESET mechanism
echo.|cfst.exe -o "result_hosts.txt"
if not exist result_hosts.txt (
    echo.|cfst.exe -sl 0 -o "result_hosts.txt"
)
if not exist result_hosts.txt (
    echo.
    echo CFST 测速结果 IP 数量为 0,跳过下面步骤...
    goto :STOP
)
Defensive patterns

Strategy: validation

Validate before calling

:: Pre-flight for cfst_hosts.bat
@echo off
if not exist cfst.exe ( echo cfst.exe missing & goto :STOP )
del result_hosts.txt 2>nul
echo.|cfst.exe -o "result_hosts.txt"
:: require an actual data row, not just a created file
for %%A in (result_hosts.txt) do if %%~zA LEQ 60 (
    echo CFST 测速结果 IP 数量为 0,跳过下面步骤...
    goto :STOP
)

Prevention

When it happens

Trigger: cfst.exe finds 0 qualifying IPs (filters too strict: -tl/-sl/-tll), the exe never ran (missing, blocked by antivirus, wrong working directory), an IP-version mismatch (v6 pool on a v4-only machine), or the -o path was changed so the file is written elsewhere.

Common situations: Raising -sl to chase faster IPs and excluding everything in the current pool; scheduled-task runs where 'start in' is not set to the script folder; Windows Defender quarantining cfst.exe; corporate proxies/SSL inspection breaking the download test so every IP scores 0 MB/s.

Related errors


AI-assisted analysis of XIU2/CloudflareSpeedTest@1da0c025d7 (2026-08-15). Data as JSON: /api/errors/6a5861876804c33e. Report an issue: GitHub.