Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/21: Рейтинг темы: голосов - 21, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 14.05.2016
Сообщений: 2

Цикл считывания и использования строк из текстового файла

21.05.2016, 15:48. Показов 4049. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть программа добавления пользователей в группы из текстового файла, в файле в строке находятся две переменные: 1 user1 через пробел, 1(2, 3) - для определения группы, user1 - имя пользователя. Помогите добавить в программу цикл, чтобы считывать не только первую строчку, но если в файле несколько таких строк
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Echo Off
SetLocal EnableExtensions EnableDelayedExpansion  
@echo Group adding
set /p file=<file.txt
set one=1
set two=2
set three=3
set type=%file:~0,1% 
set memb=%file:~2%
if %type% == %one% set typeg="Администраторы"
if %type% == %two% set typeg="Пользователи"
if %type% == %three% set typeg="Гости"
net localgroup %typeg% %memb% /add
@pause
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.05.2016, 15:48
Ответы с готовыми решениями:

Поогите написать программу считывания произвольного количества строк из текстового файла
Ну вводиш в программу файл например формата txt. В этом файле что то написанно. И нажимая enter программа выдает нам, напимер 5 строк из...

Функция считывания из текстового файла
Здравствуйте, написал функцию, работает некорректно, может слишком долго работаю, но не вижу в чем проблема. Заранее спасибо за помощь. Вот...

Функция считывания слов с текстового файла
Доброго времени суток!) Задача такова: Считать из текстового файла слова в массив (создать для этого функцию). Суть моей функции (прошу...

13
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
21.05.2016, 17:38
Лучший ответ Сообщение было отмечено appropriate как решение

Решение

Windows Batch file
1
2
3
4
5
6
7
8
9
@echo off
@echo Group adding
for /f "tokens=1,2" %%a in ('type "file.txt"') do (
 if %%a==1 set typeg="Администраторы"
 if %%a==2 set typeg="Пользователи"
 if %%a==3 set typeg="Гости"
 cmd/v/c net localgroup !typeg! %%b /add
)
@pause>nul
.
1
0 / 0 / 0
Регистрация: 14.05.2016
Сообщений: 2
21.05.2016, 17:55  [ТС]
Огромное спасибо вам за помощь.
0
0 / 0 / 0
Регистрация: 16.04.2021
Сообщений: 19
16.04.2021, 00:57
Здравствуйте!
В текстовом файле из которого идет считывание есть неизвестное количество всегда парных строк. Мне нужно, чтобы нечетные и четные строки слились в одну строку 1 и 2;3 и 4; и т.д. с перезаписью или с записью в новый файл. Например, в TXT файле 10 строк, должно стать 5. В этих строках есть две переменные, (одна в нечетной, другая в четной) нужно, чтобы они обрабатывались в цикле в одной строке. Буду признателен за помощь.
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
16.04.2021, 01:09
Steamroller, здравствуйте! Соединять-то через какой разделитель? Или просто склеить? То есть, допустим, есть 1 и 2. Должно быть "12" или, например, "1 2"?

Добавлено через 18 секунд
Так же уточните кодировку текстового файла
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
16.04.2021, 01:24
В общем, 2 варианта:
1) Без соединителя:
Windows Batch file
1
@sed -i "N;s/\n//" "1.txt"
2) С соединителем (пробел):
Windows Batch file
1
@sed -i "N;s/\n/ /" "1.txt"
Примечание.
1) Для работы скрипта нужна утилита sed (во вложении). Рекомендую закинуть в C:\windows\system32
2) Для работы с кириллицей сохраните скрипт в кодировке OEM-866
3) Вместо 1.txt указываете свой файл
Вложения
Тип файла: zip sed.zip (208.3 Кб, 4 просмотров)
1
0 / 0 / 0
Регистрация: 16.04.2021
Сообщений: 19
16.04.2021, 01:48
Неважно будет разделитель или без разделителя вообще. Я вытащу обе переменные, главное, чтобы обрабатывалась одной строкой в цикле. Кодировка бат - файлов, это тоже не важно абсолютно.
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
16.04.2021, 01:53
Steamroller, тогда любой из предложенных вариантов. Кодировка для батника важна, если исходный текстовый файл в кириллице.

Добавлено через 45 секунд
Все изменения будут производиться непосредственно в файле
1
0 / 0 / 0
Регистрация: 16.04.2021
Сообщений: 19
16.04.2021, 02:02
Спасибо за Вашу помощь! Скажите пожалуйста, а можно это решить кодом в самом батнике без дополнительной утилиты? Ибо этот скрипт возможно будет использоваться не только на моем компе.
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
16.04.2021, 02:06
Steamroller, да не за что. Можно, но я называю это "обезьяньим" подходом. Если принципиально, то завтра могу набросать, но на Вашем месте я бы просто закинул утилиту на компьютер (делов на 2 секунды)
1
0 / 0 / 0
Регистрация: 16.04.2021
Сообщений: 19
16.04.2021, 10:29
Здравствуйте! Да, лучше сделать без дополнительного софта. Безусловно предложенный вариант легкий и быстрый. Я не достаточно ясно выразился в предыдущем посте про кодировку текст-файла. Это вывод созданный тем же батником в кодировке OEM-866. Просто для последующего назначения переменных это не имеет значения. Нужные подстроки в латинице в нем записаны. Кириллические символы пропускаются. Если вас не затруднит, набросайте пожалуйста код.
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
16.04.2021, 11:18
Цитата Сообщение от Steamroller Посмотреть сообщение
Если вас не затруднит, набросайте пожалуйста код.
Пробуйте:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@echo off
setlocal enableextensions enabledelayedexpansion
set count=0
for /f "tokens=* delims=" %%a in (log.txt) do (
    if not !count!==2 (
        set /A count+=1
        set string=!string!%%a
    ) else (
        echo !string!>>log_1.txt
        set string=
        set count=0
        set /A count+=1
        set string=!string!%%a
    )
)
echo %string%>>log_1.txt
pause
exit
Примечание.
Входной файл - log.txt
Выходной файл - log_1.txt
0
0 / 0 / 0
Регистрация: 16.04.2021
Сообщений: 19
16.04.2021, 19:25
Большое вам спасибо! Огромный респект! Ваш код работает отлично! Переменные из каждой строки извлёк без проблем, тем самым задача решена.
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
16.04.2021, 19:55
Steamroller, да не за что
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.04.2021, 19:55
Помогаю со студенческими работами здесь

Сохранение и считывания списка с текстового файла
Всем привет! Ребята я делаю программу по работе со списками и она уже почти готова, по сути всё сделал! Вот только не знаю как сохранить...

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

Написать программу для считывания содержимого текстового файла
1 написать программу для считывания содержимого текстового файла. 2 Написать программу для сохранения системой даты и времени в текстовый...

Цикл для построчного считывания из файла
Добрый день, бьюсь над следующей проблемой. Мне необходимо считать из файла, данные в структуру. В текстовом файле данные хранятся...

Не работает цикл считывания данных из файла
Создал программу которая должна считывать 25 чисел из 1 файла , и во время считывания записивать их в массив,а после найти суму...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru