Чистый cmd?:
delline.cmd число имя файла
@echo off
setlocal ENABLEDELAYEDEXPANSION
set line=%~1
set file=%~nx2
set dSource=%~dp2
set i=0
for /F "delims=" %%l in (%dSource%%file%) do (
set /a i+=1
if not !i! EQU %line% call :BuildFile "%%l"
)
del /f "%dSource%%file%" >nul
for %%l in (%_file%) do echo %%~l>>"%dSource%%file%"
endlocal& exit /b 0
:BuildFile
set _file=%_file% %1
exit /b 0
___ Примечания _____
1: Нет проверок параметров. Первый должен быть числом, второй файл или путь + файл.
2: Как и в случае с другими ответами, временного файла тоже нет.
3: Использование setlocal позволит вам легко интегрировать этот код в скрипт, назвав его : delline и используя его как: call: delline number файл
ПРЕДУПРЕЖДЕНИЕ: Любая пустая строка из исходного файла будет пропущена / потеряна в процессе чтения ( for..loop ). Файл с 10 строками, из которых 4 являются пробелами, будет считан как 6 строк для обработки. Указанный номер строки будет применен (то есть удален) из 6 строк данных, а не из начальных 10.
Редактировать
Пошел слишком быстро, не увидел ответа Акфа, который выглядит очень близко к моему.