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

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

Ответить
Настройки темы
CMD/BAT - Получить из файла значение только пятой строки.

Новый участник


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

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


Всем доброго времени суток!

Помогите с задачкой одной. Необходимо с помощью батника получить значение пятой строки в файле. И вывести его на экран.

Как это можно сделать?
заранее спасибо!

Отправлено: 11:04, 04-12-2019

 

Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


Код: Выделить весь код
powershell -command "(gc D:\temp\filelist.txt)[4]"
О, а вот так будет работать быстрее:
Код: Выделить весь код
powershell -command "gc D:\temp\filelist.txt -first 5 |select -last 1"

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Последний раз редактировалось DJ Mogarych, 04-12-2019 в 13:59.

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

Отправлено: 12:07, 04-12-2019 | #2



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

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


Новый участник


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

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


C powershell вариант мне известен... спасибо! но вот хотелось бы такое же но с помощью батника.

Отправлено: 14:29, 04-12-2019 | #3


Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


Это код для батника.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 15:34, 04-12-2019 | #4


Ветеран


Contributor


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

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


Код: Выделить весь код
@Echo Off
cls
	Set "FileIn=Z:\Box_In\Fi Le.txt"
	Set /A N=5

	Set /A N-=1
	For /F "usebackq delims=" %%f In (`2^>nul More +%N% "%FileIn%"`) Do Set "NStr=%%f" &GoTo :Continue
	:Continue
	Echo "%NStr%"
pause
Exit /B 0

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

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

Отправлено: 17:13, 04-12-2019 | #5


Ветеран


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

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


И skip же ещё (если первые строки не пустые).

Отправлено: 21:22, 04-12-2019 | #6


Ветеран


Contributor


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

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


Цитата Iska:
И skip же ещё (если первые строки не пустые). »
Iska, more /? Скип никак не нужен. Неприятность - если выводимая строка пустая. А скип при пустых строках не спасает.
А вот вариант, переменная при искомой пустой строке будет правильная, фантазия привела к наиболее оптимальному варианту
Код: Выделить весь код
@Echo Off
cls
	Set "FileIn=Z:\Box_In\Fi Le.txt"
	Set /A N=5 

	For /F "usebackq tokens=1* delims=:" %%i In (`2^>nul FINDSTR /R /C:".*" /N "%FileIn%"`) Do If "%%i"=="%N%" Set "NStr=%%j"
	Echo "%NStr%"
pause
Exit /B 0
Или, вот еще одно циничное извращение
Код: Выделить весь код
@Echo Off
cls
	Set "FileIn=Z:\Box_In\Fi Le.txt"

	For /F "usebackq tokens=1* delims=:" %%i In (`2^>nul FINDSTR /R /C:".*" /N "%FileIn%"`) Do Call Set "NStr%%i=%%j"
	Echo "%NStr5%"
pause
Exit /B 0
Получай строку какую хочется

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


Последний раз редактировалось megaloman, 04-12-2019 в 22:54.

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

Отправлено: 21:58, 04-12-2019 | #7


Ветеран


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

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


подкину и я:
1.
Код: Выделить весь код
@echo off
<"file.txt" (more +4|set /p x=^& call echo %%x%%)
pause
2.
Код: Выделить весь код
@echo off
<"file.txt" (for /f "tokens=2 delims=[]" %%a in ('find /n /v ""^|find "[5]"') do @echo:%%a)
pause
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:42, 04-12-2019 | #8


Ветеран


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

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


Цитата megaloman:
Iska, more /? »
Не, ну, more Вы уже сделали же .

Отправлено: 05:39, 05-12-2019 | #9



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Как получить значение параметра из реестра, добавить значение в текстовый файл etc.? Dark Ange1 Скриптовые языки администрирования Windows 28 22-06-2022 14:37
[решено] получить значение из _GUICtrlComboBoxEx_Create VNRed_OK AutoIt 4 13-05-2015 08:21
C/C++ - С :запись из одного файла в другой только часть строки alfaw Программирование и базы данных 1 07-07-2013 23:40
CMD/BAT - Как из for получить значение из одной строки смещаясь на 1 при каждом проходе Voodooman Скриптовые языки администрирования Windows 18 28-08-2011 05:54
[решено] Получить значение ячейки из таблицы HTML Lodoss AutoIt 2 30-12-2009 07:15




 
Переход