Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/34: Рейтинг темы: голосов - 34, средняя оценка - 4.65
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566

Ввод файла и присвоение значения переменной

22.01.2020, 22:07. Показов 6981. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер! Хотелось бы для себя прояснить нюансы, связанные с вводом файла и присвоением его содержимого переменной. Итак:
1) Допустим, есть условная конструкция set /p A=<file.txt. Я где-то вычитал, что в результате её выполнения переменной A присвоится значение в виде первой строчки из file.txt. Тут всё понятно. В сообщении из приведённого кода, а именно из 5 строчки я делаю вывод, что команда set /p= не присваивает первую строчку переменной (оно и понятно, потому что переменной как таковой нет), но при этом первую строчку из файла использует, а вот вторую строку уже присваивает переменной username, так как она создана. Правильно?
То есть, если бы я продолжил написание в виде:
Windows Batch file
1
<file.txt (set /p=& set /p=& set /p login=)
То при условии, что в file.txt есть три строчки переменной login присвоилось бы значение 3 строчки?
2) Здесь мне не совсем ясна конструкция:
Windows Batch file
1
do >>$<$ set /p n="%%a,"
Просьба истолковать эту конструкцию.
Не так давно где-то я сталкивался с конструкцией, в которой последовательно происходит ввод строк и в итоге они склеиваются в одну переменную. Доподлинно не помню, но было что-то такое:
<file.txt set /p n=
<file1.txt set /p n=
и т.д.
Просьба разъяснить каким образом после первого ввода и присвоения значения идёт последующее приращение переменной?
Спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.01.2020, 22:07
Ответы с готовыми решениями:

Присвоение переменной значения, взятого из txt-файла
Нашел похожие темы,но они не помогли,а именно: for /f &quot;user=3&quot; %%a in (&quot;logs.txt&quot;) do (echo %%~a) Т.е. чтение 3-й строки и присваивание...

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

Присвоение переменной значения, находящегося в определённой строке заданного файла
Файл с паролем расположен по пути /home/omp/rdb/SYSDBA.password (таких файлов всего 30 штук, пароли различны). Пароли могут различаться и...

8
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
22.01.2020, 23:33
Лучший ответ Сообщение было отмечено Karen87 как решение

Решение

Цитата Сообщение от Karen87 Посмотреть сообщение
при условии, что в file.txt есть три строчки
если так, то выведем все три строчки в переменные:
Windows Batch file
1
2
3
4
5
6
@echo off
<file.txt (set /p s1=& set /p s2=& set /p s3=)
echo %s1%
echo %s2%
echo %s3%
pause
------------------
Цитата Сообщение от Karen87 Посмотреть сообщение
не совсем ясна конструкция
а это как раз когда надо в одну строку, но при этом нужен не просто вывод, а и переменная. В данном случае просто более короткая запись хоть и менее понятная, вероятно (на примере того же файла)
более длинная запись:
Windows Batch file
1
2
3
4
5
6
@echo off
>>$ (for /f "delims=" %%a in (file.txt) do @<nul set /p="%%a,")
<$ set /p x=
echo %x%
del $
pause
все тоже самое, но компактнее:
Windows Batch file
1
2
3
4
@echo off
for /f "delims=" %%a in (file.txt) do >>$<$ set /p x="%%a,"
del $& echo %x%
pause
Добавлено через 4 минуты
Karen87, просто пробуйте, экспериментируйте и меньше вопросов будет, а может даже и свой какой-то новый вариант выполнения отдельной операции придумаете.
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
23.01.2020, 09:45  [ТС]
Цитата Сообщение от alpap Посмотреть сообщение
Karen87, просто пробуйте, экспериментируйте и меньше вопросов будет, а может даже и свой какой-то новый вариант выполнения отдельной операции придумаете.
Попробовал сам, проанализировал и остались вопросы:
1) Как я понял, если открыть cmd и ввести конструкцию
Windows Batch file
1
set /p=значение
, то после нажатия ввод появится значение и возможность ввести любые символы. В случае применения конструкции
Windows Batch file
1
<nul set /p=значение
в результате нажатия клавиши ввод результатом будет только лишь значение. Как я понял именно
Windows Batch file
1
<nul
выступает клавиатурой. Содержимое nul пусто, поэтому остаётся лишь значение. Тогда в таком случае почему при использовании конструкции
Windows Batch file
1
<строка или строки.txt set /p=значение
после нажатия клавиши ввод не выводится значение первой строки файла строка или строки.txt (конечно же в файле она есть)? Если я неправ в размышлениях, то поправьте, пожалуйста.
2) Почему при использовании конструкции
Windows Batch file
1
<nul set /p=значение>>log.txt
, допустим, 5 раз в файле log.txt формируется строка значениезначениезначениезначениезначение, а не
значение
значение
значение
значение
значение

?
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
23.01.2020, 11:41
такая команда, без переноса на новую строку - этим и хороша
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
23.01.2020, 11:46  [ТС]
Цитата Сообщение от alpap Посмотреть сообщение
такая команда, без переноса на новую строку - этим и хороша
Да, я согласен, что это плюс, просто хотелось бы понять - это какой-то стандартный функционал или сложившаяся со временем практика? Может быть есть документированное описание, связанное с моими вопросами?
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
23.01.2020, 11:48
вот тут точно не отвечу, надо рыть мануалы, у меня конечно устоявшаяся практика.
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
23.01.2020, 11:51  [ТС]
Просто у меня возникает, например, недоумение почему можно использовать set /p=значение, когда конструкция задокументирована как set /p a=значение

Добавлено через 1 минуту
И данный вопрос не единственный :-)

Добавлено через 59 секунд
Цитата Сообщение от alpap Посмотреть сообщение
вот тут точно не отвечу, надо рыть мануалы, у меня конечно устоявшаяся практика.
Хорошо, а по первому вопросу можете дать какой-нибудь комментарий?
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
23.01.2020, 11:56
да много нет в мануале, но оно работает, например подобный вид комментария тоже толком не описан
Windows Batch file
1
2
3
4
5
@echo off
:: Определяем переменную %%a%%
set "a=значение"&: Пишем какой-то комментарий
echo %a%
pause
или создание файла подобным образом
Windows Batch file
1
2
rem:>file1.txt
break>file2.txt
1
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
23.01.2020, 12:04  [ТС]
Понял, спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.01.2020, 12:04
Помогаю со студенческими работами здесь

Присвоение переменной среды значения переменной цикла
здравствуйте, у меня простой вопрос: for /l %%i in (10,10,100) do ( set /a w=%%i echo %%i=%w% ) результат получается, что...

Присвоение переменной значения из текстового файла
Доброго дня. есть текстовый файл, подскажите, пожалуйста, как присвоить переменной значение, которое находится в первой строчке 13-е по...

Присвоение значения переменной из строки другого файла
Есть текстовый файл в сетевой папке \\ServerShara\1.txt Как скрипту VBS взять значение для переменных допустим strText1 = 1ая строка...

Присвоение значения одной переменной значению другой переменной
Здравствуйте! При загрузке приложение считывает значения узлов в xml файле (например, IDa=&quot;IDa2&quot;, IDb=&quot;IDb1&quot;). ...

Присвоение php переменной значения js переменной
Доброго времени суток, я только начинаю изучать JavaScript и у меня возник следующий вопрос: Имеется переменная созданная в JavaScript, в...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
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
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru