Ваш цикл for полностью недействителен. Метавариабельные переменные требуют одного символа, а не слова. что-то вроде %%i
, но независимо от этого, цикл /L
будет просто делать то, сколько раз вы говорите это, что не будет делать то, что вы думаете здесь .. Попробуйте это:
Примечание Пожалуйста, убедитесь, что вы изменили D:\work dir\somefile.txt
в 3-й строке кода на свое имя файла, если оно находится в том же каталоге, иначе добавьте полный путь к нему, если нет.
@echo off
setlocal enabledelayedexpansion
set "file=somefile.txt"
set /a cnt=0
for /f "delims=" %%i in (%file%) do (
set /a "eval=(cnt+1)%%30"
if not !eval! equ 0 echo %%i
if !eval! equ 0 (
echo %%i
Echo Add YOUR note here!!!
)
set /a cnt+=1
)
Если вам требуется, чтобы примечание вставлялось пользователем вручную, используйте set /p
, как показано ниже:
@echo off
setlocal enabledelayedexpansion
set "file=somefile.txt"
set /a cnt=0
for /f "delims=" %%i in (%file%) do (
set /a "eval=(cnt+1)%%30"
if not !eval! equ 0 echo %%i
if !eval! equ 0 (
echo %%i
set /p note=Add note?
echo !note!
)
set /a cnt+=1
)