Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата Alexander_88:
Я не много исправил, добавил еще
set sLine4=
и
>nul set /p sLine4=
т.к. нужно извлекать 1, 5, 9, 13 ......... т.е. между извлеченными строками всегда 3 других строчки. »
Мда, это у меня уже маразм, не иначе. Попробуйте так:
Скрытый текст
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceFile=%~1
set sDestFile=Result.txt

if defined sSourceFile (
	if exist "%sSourceFile%" (
		for /f "usebackq delims=" %%i in (
			`type "%sSourceFile%" ^| find.exe /c /v ""`
		) do set /a iLinesCount = %%~i
		
		set /a iCycles = !iLinesCount! / 4
		set /a iMod = !iLinesCount! %% 4
		
		if !iMod! neq 0 set /a iCycles += 1
		
		<"%sSourceFile%" >"%sDestFile%" (
			for /l %%i in (1, 1, !iCycles!) do (
				set sLine1=
				set sLine2=
				set sLine3=
				set sLine4=
				
				>nul set /p sLine1=
				>nul set /p sLine2=
				>nul set /p sLine3=
				>nul set /p sLine4=
				
				echo.!sLine1!
				echo.!sLine1!
			)
		)
	) else (
		echo Can't find source file [%sSourceFile%].
		exit /b 2
	)
) else (
	echo Usage: %~nx0 ^<Source file^>
	exit /b 1
)

endlocal
exit /b 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:48, 11-06-2015 | #4