Por que tão complicado? Não vejo necessidade de armazenar os valores em uma matriz - você pode simplesmente abrir cada guia do Chrome diretamente em um único loop FOR / F simples.
@echo off
for /f "usebackq delims=" %%A in ("C:\New folder\controlfile.txt") do (
echo %%~A
start "" chrome.exe www.google.com#q="%%~A"+EULA
)
O motivo pelo qual seu código baseado em matriz falhou é porque você esqueceu de usar CALL com sua linha START.
call start "" chrome.exe www.google.com#q=%%array[%%i]%%+EULA
Eu prefiro muito mais usar a expansão atrasada em vez do truque CALL, já que a expansão atrasada é muito mais rápida.
@echo off
setlocal enableDelayedExpansion
set "file=C:\New folder\controlfile.txt"
set /a i=0
for /F "usebackq delims=" %%A in ("%file%") do (
set /a i+=1
set "array[!i!]=%%A"
)
for /L %%A in (1,1,%i%) do (
echo !array[%%A]!
start "" chrome.exe www.google.com#q=!array[%%A]!+EULA
)
Supondo que nenhuma das suas linhas comece com :
, você pode fazer o primeiro loop sem CALL ou DelayedExpansion
for /f "delims=: tokens=1*" %%A in ('findstr /n "^" "%file%"') do set "array[%%A]=%%B"