Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/121: Рейтинг темы: голосов - 121, средняя оценка - 4.83
sergx1300
1

Как прочитать первую строку из текстового файла?

08.10.2012, 01:48. Просмотров 23848. Ответов 9
Метки нет (Все метки)

Есть текстовый файл, нужно сделать BATник который бы первую строку из текстового файла присваивал переменой и по этой переменой создавал папку. То есть нужно прочитать первую строку из текстового файла и сразу закрыть файл. Этой цикл будет внутри еще одного цикла. Посоветуйте как это сделать.

Добавлено через 25 минут
Проблему решил установкой условия IF
Bash
1
2
3
4
5
6
7
8
9
10
11
set /a c=0
 
rem читаем первую строку из файлу
for /f "tokens=*" %%x in (D:\test\IO\1.txt) do (
                                                    if !c!==0 (
                                                                set "NameFolder_File=%%x"
                                                                )
                                                    set /a c+=1
                                                    )
rem создаем папку 
MD D:\test\!NameFolder_File!
Добавлено через 6 минут
Работает, но читает полностью текстовой файл. Неудобно, кто знает другое решение, поделитесь.
С уважением Сергей.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.10.2012, 01:48
Ответы с готовыми решениями:

Нужно прочитать из текстового файла определённую строку (не первую)
Люди, спасайте. Перерыл весь инет, никак найти не могу. В книге у меня какой-то бред написан. Нужно...

Как прочитать первую строку из файла
Здравствуйте! Столкнулась с проблемой чтения 1 строчки из файла. Выглядит так: X1#Y1#X2#Y2 0,5...

Как прочитать все содержимое текстового файла в строку на C++
Здравствуйте, речь идет про запись всего содержимого файла в одну переменную "разом". Читал кучу...

Как считывать из текстового файла, пропуская первую строку?
Имею такой код: procedure TF_knopka.fZagrClick(Sender: TObject); // Закрузка...

9
91 / 91 / 4
Регистрация: 25.06.2012
Сообщений: 278
08.10.2012, 11:02 2
Вот таким образом, что уже встречался на форуме можно вывести интересующую вас строку:
Bash
1
2
3
4
for /f "usebackq  delims=" %%i in (`find /n /v "" 1.txt ^| find "[1]"`) do (
    set value=%%i
)
echo %value:~3%
В квадратных скобках задается номер строки.
1
Эксперт WindowsАвтор FAQ
17554 / 7398 / 880
Регистрация: 25.12.2011
Сообщений: 11,193
Записей в блоге: 16
08.10.2012, 21:59 3
Badger, я, если честно не понял к чему это.


sergx1300, попробуйте так:
Bash
1
2
for /f "tokens=" %%x in (D:\test\IO\1.txt) do (md "%%x"& goto :nxt)
:nxt
Все лишнее постирал, т.к. не вижу полного кода и предназначения непонятных мне переменных.
1
91 / 91 / 4
Регистрация: 25.06.2012
Сообщений: 278
08.10.2012, 22:13 4
Мне почему то показалось, что у автора темы были трудности с выводом первой строки файла, которая в последствии должна стать именем каталога.
0
Эксперт WindowsАвтор FAQ
17554 / 7398 / 880
Регистрация: 25.12.2011
Сообщений: 11,193
Записей в блоге: 16
08.10.2012, 22:33 5
Badger, да, разобрался в Вашем примере.

Цитата Сообщение от sergx1300 Посмотреть сообщение
нужно прочитать первую строку из текстового файла и сразу закрыть файл
Я так понял, ТС хотелось минимизировать потерю времени.
А Ваш код все равно читает файл полностью, а уж потом вторым Find выдирает из результата первую строку (опять же читая текст из буфера полностью).

В отличие от Find, For получает данные и разбирает файлы построчно.
0
sergx1300
11.10.2012, 16:25 6
Цитата Сообщение от Badger Посмотреть сообщение
Мне почему то показалось, что у автора темы были трудности с выводом первой строки файла, которая в последствии должна стать именем каталога.
Точно
Pure Free Digital Ghost
4165 / 1633 / 312
Регистрация: 06.01.2013
Сообщений: 4,242
01.02.2013, 21:50 7
Bash
1
set /p value=<D:\test\IO\1.txt
2
91 / 91 / 4
Регистрация: 25.06.2012
Сообщений: 278
02.02.2013, 03:22 8
FraidZZ, а как он так работает?
Думаю можно даже добавить это решение в тему "Простые примеры решенных задач для новичков и профессионалов". По моему очень кстати.
0
Эксперт WindowsАвтор FAQ
17554 / 7398 / 880
Регистрация: 25.12.2011
Сообщений: 11,193
Записей в блоге: 16
02.02.2013, 03:28 9
Да вот, как-то работает: Каталог простых примеров решенных задач BAT/CMD, с чего начать (■■■ основная тема ■■■)

Смею предположить, что поскольку Set /P принимает < поток данных (по-умолчанию, с клавиатуры - до первого нажатия ENTER) конец первой строки файла интерпретируется как перенос строки, иначе - тот самый ENTER.
И более ничего из потока туда в переменную попасть не может.
2
886 / 188 / 16
Регистрация: 18.07.2011
Сообщений: 260
02.02.2013, 11:28 10
Цитата Сообщение от Badger Посмотреть сообщение
FraidZZ, а как он так работает?
Некоторые подробности здесь: Литература, учебники, пособия по CMD/BAT, список команд
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.02.2013, 11:28

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как прочитать первую строку из файла а остальной текст повторить несколько раз?
Я новичок в этом деле, прошу не осуждать. Помогите разобраться. Задание такое: Программа...

Прочитать из файла первую строку
Доброго времени суток. Как прочитать из файла первую строку? Пробовал так: $handle =...

Из текстового файла прочитать предложение, первую букву каждого слова сделать большой
Из текстового файла прочитать предложение, первую букву каждого слова сделать большой. Полученое...

С текстового файла прочитать предложение, первую букву каждого слова сделать большой
С текстового файла прочитать предложение, первую букву каждого слова сделать большой. Полученное...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.