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

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

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

Author24 — интернет-сервис помощи студентам
Добрый вечер! Хотелось бы для себя прояснить нюансы, связанные с вводом файла и присвоением его содержимого переменной. Итак:
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
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.01.2020, 22:07
Ответы с готовыми решениями:

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

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

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

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

8
4336 / 2126 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
22.01.2020, 23:33 2
Лучший ответ Сообщение было отмечено 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
3159 / 1086 / 489
Регистрация: 29.05.2016
Сообщений: 4,511
23.01.2020, 09:45  [ТС] 3
Цитата Сообщение от 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
4336 / 2126 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
23.01.2020, 11:41 4
такая команда, без переноса на новую строку - этим и хороша
0
3159 / 1086 / 489
Регистрация: 29.05.2016
Сообщений: 4,511
23.01.2020, 11:46  [ТС] 5
Цитата Сообщение от alpap Посмотреть сообщение
такая команда, без переноса на новую строку - этим и хороша
Да, я согласен, что это плюс, просто хотелось бы понять - это какой-то стандартный функционал или сложившаяся со временем практика? Может быть есть документированное описание, связанное с моими вопросами?
0
4336 / 2126 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
23.01.2020, 11:48 6
вот тут точно не отвечу, надо рыть мануалы, у меня конечно устоявшаяся практика.
0
3159 / 1086 / 489
Регистрация: 29.05.2016
Сообщений: 4,511
23.01.2020, 11:51  [ТС] 7
Просто у меня возникает, например, недоумение почему можно использовать set /p=значение, когда конструкция задокументирована как set /p a=значение

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

Добавлено через 59 секунд
Цитата Сообщение от alpap Посмотреть сообщение
вот тут точно не отвечу, надо рыть мануалы, у меня конечно устоявшаяся практика.
Хорошо, а по первому вопросу можете дать какой-нибудь комментарий?
0
4336 / 2126 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
23.01.2020, 11:56 8
да много нет в мануале, но оно работает, например подобный вид комментария тоже толком не описан
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
3159 / 1086 / 489
Регистрация: 29.05.2016
Сообщений: 4,511
23.01.2020, 12:04  [ТС] 9
Понял, спасибо
0
23.01.2020, 12:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.01.2020, 12:04
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru