FOR /F пропускает пустые строки, чтобы этого не происходило можно пропустить файл через find с выводом номеров строк (/n) и последующим отбрасыванием их:@echo off
Setlocal EnableDelayedExpansion
(for /f "tokens=1* delims=]" %%1 in (
'start /b find /n /v ""^<rotor.txt'
) do (
set "val=%%2"
if defined val set "val=!val:-=!"
echo(!val!
))>rotor_new.txtstart /b. Если это убрать, то всё будет работать так же, но, по моим ощущениям, несколько медленнее. Дело в том, что в FOR/F все команды: не только внутренние (как это происходит с ними в конвейере |, и что можно было бы ещё понять), но и внешние программы запускаются не напрямую, а через дополнительную копию обработчика командной строки, т. е. не просто find ..., а cmd.exe /c find .... И при помощи start /b вспомогательный процесс cmd.exe получает указание не ожидать впустую завершения запущенной им программы.set /p из подпрограммы на вход которой перенаправлен файл (call :sub <rotor.txt), но при этом возникает затруднение с определением окончания ввода, обойти его можно, например, предварительно дописав в конец файла строку, заведомо не встречающуюся в нём.
token на tokens или совсем уберите token=* (delims= оставьте).
(for ... do (
...
))>rotor_new.txt — файл на запись будет открыт однократно и заблокирован на это время от изменения другими программами, например, если скрипт будет случайно запущен дважды.
Сейчас я его включи. Ничего не изменилось.
Устранение неполадок
Не удается войти в почтовый клиент
В документации Google указано что логин это адрес вместе с собакойДля адресов в домене gmail, кажется, без разницы.
domain1.ru, сталоdomain1\.ru, — хотя я и не могу представит случая в котором это бы дало ложное срабатывание, но исправленное всё же точнее.