Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Вывод строк текстового файла, начиная с одной и заканчивая другой

Ответить
Настройки темы
CMD/BAT - [решено] Вывод строк текстового файла, начиная с одной и заканчивая другой

Пользователь


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

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


Прошу прощения за очередное беспокойство... Подскажите, пожалуйста, как можно реализовать вывод строк из файла (начиная со строки №:M и заканчивая строкой №:N)? Я нашёл такой пример:

Код: Выделить весь код
@echo off
Setlocal EnableDelayedExpansion
chcp 1251>nul
set /p file=Введите имя файла-
set /p m=Введите M-
set /p n=Введите N-
chcp 866>nul
 
Set /A m-=1, n-=1
For /F "delims=" %%A in ('more +%m% ^<"%file%"') do (
  echo %%A
  if !m!==!n! (>nul pause& goto :eof)
  Set /A m+=1
)
Но команда more даёт сбой на Wondows 8: пишет, что слишком много аргументов для командной строки

Отправлено: 17:35, 06-08-2013

 

Ветеран


Contributor


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

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


При условии что в файле нет пустых строк
Код: Выделить весь код
@Echo Off
Cls

SetLocal EnableExtensions EnableDelayedExpansion

Set /A M=10
Set /A N=20

If %M% GTR 1 (
	Set /A MM=%M%-1
	Set "Skip=Skip=!MM!"
) Else (
	Set "Skip="
) 

Set /A K=0
Set /A KK=%N%-%M%+1

FOR /F "%Skip% usebackq delims=" %%i IN (123.txt) DO (
	Echo %%i
	Set /A K=!K!+1
	If !K! GEQ %KK% GoTo :Eof
)

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

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

Отправлено: 18:18, 06-08-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


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

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


megaloman, спасибо Вам, всё работает! Благодарю!

Отправлено: 18:30, 06-08-2013 | #3


Ветеран


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

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


Мой вариант:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set /a iFrom =  5
set /a iTo   = 15

for /f "usebackq tokens=1,2* delims=[]" %%i in (
	`type "E:\Песочница\0308\0001.txt" ^| find.exe /v /n ""`
) do if %%i geq %iFrom% if %%i leq %iTo% echo.%%j

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

Отправлено: 19:06, 06-08-2013 | #4


Пользователь


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

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


Iska, спасибо, Ваш способ проще и компактнее Единственный минус - поглощение символов [] и того, что находится между ними.

Последний раз редактировалось Bruce Wayne, 07-08-2013 в 09:16.


Отправлено: 23:25, 06-08-2013 | #5


Ветеран


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

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


На всякий случай:
Код: Выделить весь код
@echo off
setlocal

set "from=10"
set "to=20"

sed -n "%from%,%to% p" 1.txt
Это сообщение посчитали полезным следующие участники:

Отправлено: 07:32, 07-08-2013 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Вывод строк текстового файла, начиная с одной и заканчивая другой

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Копирование строк из одной файла в другой Kamerad Скриптовые языки администрирования Windows 3 28-01-2013 09:59
VBS/WSH/JS - [решено] из строк текстового файла нужно вырезать определенные символы alek2012 Скриптовые языки администрирования Windows 10 11-07-2012 16:54
CMD/BAT - Поиск и копирование нескольких строк из текстового файла. valen Скриптовые языки администрирования Windows 0 07-11-2011 17:27
CMD/BAT - [решено] Перенос и удаление строк из текстового файла sk8ter Скриптовые языки администрирования Windows 15 03-10-2010 19:35
CMD/BAT - [решено] вывод текстового файла на экран cmd idsp Скриптовые языки администрирования Windows 6 06-04-2009 07:18




 
Переход