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

Нужно вывести название папок как категории в скрипте с описанием из текстового файла

26.03.2020, 22:57. Показов 1852. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть папка Project
в нем лежат другие папки (только папки)
Project Minimal
Project Testing
Project 2020
....
и т.д.

количество папок может меняться соотвесвенно

В каждой папке лежит текстовой файл без расширения под названием INFO

В каждом текстовом файле содержится информация типа..
  • Первая строка это название проекта, скажем "Проект 2020"
  • вторая строка это версия проекта, скажем "1.0"
  • Третья строка содержит описание, типо "Новый вариант 2020"
в итоге выходит что то такое
Bash
1
2
3
Проект 2020
1.0
Новый вариант 2020
ну или можно сделать наподобие этого, не принципиально...
Bash
1
2
3
Название проекта: Проект 2020
Версия проекта: 1.0
Описание проекта: Новый вариант 2020
Задача следующая:
При запуске Bat файла выходит что то типо этого
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@echo off
echo     Выберите проект:
echo.
echo    1 - Project Minimal
echo    2 - Project Testing
echo    3 - Project 2020
echo    и т.д.
echo.
set /P Сhoice3="Ваш выбор: "
if not defined Сhoice3 goto :Сhoice
if "%Сhoice3%"=="1" Set "Project=Project Minimal"
if "%Сhoice3%"=="2" Set "Project=Project Testing"
if "%Сhoice3%"=="3" Set "Project=Project 2020"
cls
echo.
echo Выбран проект: %ProjectName%
echo Версия проекта: %ProjectVersion%
echo Описание проекта: %ProjectShortDescription%
Папка проекта %Project%
pause
Как такое реализовать правильно?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.03.2020, 22:57
Ответы с готовыми решениями:

Как вывести название категории?
Имеется код. Вывожу записи на страницу одной категории (рубрики). блок <li> дублируется в цикле, а <div...

Как можно узнать из файла .m3u название песни и вывести это название в Label?
Я делаю свою программку для прослушивания радиостанций (хоть таких и полно - но мне хочется создать что-то свое). Как можно узнать из файла...

Нужно вывести первых 3 предложения из текстового файла
Код должен вывести первых 3 предложения из текстового файла

12
6985 / 2875 / 1106
Регистрация: 06.06.2017
Сообщений: 9,765
26.03.2020, 23:15
Бат кинуть в Project\:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
@echo off&setlocal enabledelayedexpansion&chcp 1251
:Сhoice
cls
echo     Выберите проект:
echo.
echo    1 - Project Minimal
echo    2 - Project Testing
echo    3 - Project 2020
echo    и т.д.
echo.
set /P Сhoice3="Ваш выбор: "
if not defined Сhoice3 goto Сhoice
if "%Сhoice3%"=="1" Set "Project=Project Minimal"
if "%Сhoice3%"=="2" Set "Project=Project Testing"
if "%Сhoice3%"=="3" Set "Project=Project 2020"
if not exist "%Project%\" goto Сhoice
cls
<"%Project%\INFO" (for /f "delims= eol=" %%i in ('find /v ""') do set/a c+=1&set "!c!=%%i")
echo.
echo Выбран проект: !1!
echo Версия проекта: !2!
echo Описание проекта: !3!
echo Папка проекта: %Project%
pause
0
5 / 5 / 0
Регистрация: 24.11.2015
Сообщений: 224
26.03.2020, 23:56  [ТС]
FlasherX, FlasherX, есть две проблемы.
Первая это бат не может находиться в папке Project, слишком много кола надо мне переделать. Мне надо встроить это в готовый брат файл, который находиться на одном уровне с папкой Project.
А вторая проблема в том что если я добавлю ещё один проект в папку Project, он не появиться в меню выбора.
А ещё кодировка моего batника 866......
0
6985 / 2875 / 1106
Регистрация: 06.06.2017
Сообщений: 9,765
27.03.2020, 01:50
Guman, кодирока файлов INFO тогда тоже должа быть в OEM 866.
0
5 / 5 / 0
Регистрация: 24.11.2015
Сообщений: 224
28.03.2020, 14:19  [ТС]
FlasherX, ну это даже если и не понятно кому то, можно методом тыка обнаружить
Мне бы как правильно все остальное сделать....
примерно понимаю что делать... но слишком много нюансов которых я не знаю... а может и их вообще нету..

Добавлено через 51 минуту
Windows Batch file
1
2
echo Вывод только каталогов из папки Project
for /d %%B in ("%~dp0Project\*") do echo %%~nB
вроде нашел как вывести только список каталогов..
как теперь сделать чтобы выдаваемый список стал переменными ?? каждая папка отдельная переменная..
Собственно еще и надо вывести каждую переменную в отдельную строку вида
Windows Batch file
1
2
3
4
5
"%Сhoice3%"=="1" Set "Project=Project Minimal"
"%Сhoice3%"=="1" Set "Project=Project Minimal"
"%Сhoice3%"=="2" Set "Project=Project Testing"
"%Сhoice3%"=="3" Set "Project=Project 220"
"%Сhoice3%"=="здесь с каждым новым каталогом цифра увеличивается" Set "Project=название папок"
Добавлено через 2 часа 5 минут
Windows Batch file
1
2
3
4
5
6
7
8
@echo off
SetLocal EnableDelayedExpansion
FOR /L %%i IN (1,1,10) DO for /d %%B in ("%~dp0Project\*") do set "Menu%%i=%%~nB"
echo Вывод1 %Menu1%
echo Вывод2 %Menu2%
echo Вывод3 %Menu3%
echo Вывод4 %Menu4%
pause
хотел сделать так, но опять из нюансов проблема
видает последнюю папку во всех echo
0
6985 / 2875 / 1106
Регистрация: 06.06.2017
Сообщений: 9,765
28.03.2020, 14:31
Лучший ответ Сообщение было отмечено Guman как решение

Решение

Guman, ну, можно и так (с учётом выполнения условия по кодировке файлов):
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@echo off&setlocal enabledelayedexpansion
:Сhoice
cls&set n=0
echo    Выберите проект:
echo.
for /d %%d in (Project\*) do set/a n+=1 & set "!n!=%%d" & echo    !n! - %%~nxd
echo.
set /P num="Ваш выбор: "
if "%num%" lss "1" goto Сhoice
if "%num%" gtr "!n!" goto Сhoice
cls
<!%num%!\INFO (for /f "delims= eol=" %%i in ('find /v ""') do set/a c+=1 & set "d!c!=%%i")
echo.
echo Выбран проект: !d1!
echo Версия проекта: !d2!
echo Описание проекта: !d3!
echo Папка проекта: !%num%:*\=!
pause>nul
1
5 / 5 / 0
Регистрация: 24.11.2015
Сообщений: 224
05.04.2020, 14:55  [ТС]
Добавлено через 39 минут
FlasherX, FlasherX, Спасибо, все как надо заработало... у меня еще одна просьба, хочу этим завершить вопрос связаный с этой темой...

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

Вот как хочу сделать содержание info файла.
Code
1
2
3
4
5
[Basic information and project presets] это строка ничего не значит...
Name=Проект 2020
CreationDate=01.01.2020
Description=Новый проект 2020, с чистого листа
Components=Minimal;OnlineProg;OfflineProg;Driver;
Нужно сделать так чтобы все таки не по номеру строки определялись значения переменных, а именно была привязка как в ini файлах.. к пункту настройки...

так же добавил в настройки еще одну строку с названием Components
Здесь будут содержаться пред установление настройки для каждого проекта..
как организовать запись этих настроек в эту строку и читать оттуда опять же эти настройки.

В разделе Components, возможны следующие настройки
Minimal;Optimal;Maximal; - эти настройки взаимозаменяемы.. то есть должна присутствовать именно одна из них... если не введено ничего то значит настройка выключена..

OnlineProg;OfflineProg;StoronProgriver ; а вот эти настройки уже дополняют друг друга... могут быть задействованы все и опять же отсутствие этих настроек или одной из них в файле INFo, будет значить что отсутствующая настройка отключена(не задействована)

итак... есть скажем у нас следующее меню(данные надо как то загрузить из файла info)

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
cls & echo.
echo Выбран проект: %ProjectName%
echo Дата создания проекта: %ProjectCreationDate%
echo Описание проекта: %ProjectDescription%
echo Папка проекта: %ProjectFolder%
echo.
echo Пред настройки проекта
echo Набор компонентов: Minimal (Варианты могут быть Minimal, Optimal, Maximal и NONE)
echo.
echo                Набор программ
echo         Онлайн: включено
echo        Оффлайн: включено
echo      Сторонние: выключено
echo.
echo                Набор фиксов
echo        Drivers: задействовано
echo.
echo Нажмите клавишу [S] что-бы изменить пред настройки.
echo Чтобы продолжить, нажмите любую клавишу кроме [S]
echo.
set /P СhoiceMod="Ваш выбор: "
Собственно если нажать на клавишу [S] увидим что то такое..

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
:СhoiceComponent
cls & echo.
echo Пред настройки проекта %ProjectName%
echo Выберите набор компонентов
echo    0 - Не задействован
echo    1 - Минимальный
echo    2 - Оптимальный
echo    3 - Максимальный
echo.
set /P СhoiceComponent="   Ваш выбор: "
if not defined СhoiceComponent goto :СhoiceComponent
if "%СhoiceComponent%"=="0" Set ComponentOFF=""
if "%СhoiceComponent%"=="1" Set ComponentOFF="Minimal"
if "%СhoiceComponent%"=="2" Set ComponentOFF="Optimal"
if "%СhoiceComponent%"=="3" Set ComponentOFF="Maximal"
cls & Echo.Echo Не правильно сделан выбор ! & Echo. & Echo.
ping -n 3 127.0.0.1 > NUL
goto :СhoiceComponent
 
:СhoiceComponentOnlineProg
cls & echo. & echo Online программы
echo    0 - Не задействован
echo    1 - Задействован
set /P СhoiceComponentOnlineProg="   Ваш выбор: "
if not defined СhoiceComponentOnlineProg goto :СhoiceComponentOnlineProg
if "%СhoiceComponentOnlineProg%"=="0" Set ComponentOnlineProg=""
if "%СhoiceComponentOnlineProg%"=="1" Set ComponentOnlineProg="OnlineProg"
cls & Echo.Echo Не правильно сделан выбор ! & Echo. & Echo.
ping -n 3 127.0.0.1 > NUL
goto :СhoiceComponentOnlineProg
 
:СhoiceComponentOfflineProg
cls & echo. & echo Offline программы
echo    0 - Не задействован
echo    1 - Задействован
set /P СhoiceComponentOfflineProg="   Ваш выбор: "
if not defined СhoiceComponentOfflineProg goto :СhoiceComponentOfflineProg
if "%СhoiceComponentOfflineProg%"=="0" Set ComponentOfflineProg=""
if "%СhoiceComponentOfflineProg%"=="1" Set ComponentOfflineProg="OfflineProg"
cls & Echo.Echo Не правильно сделан выбор ! & Echo. & Echo.
ping -n 3 127.0.0.1 > NUL
goto :СhoiceComponentOfflineProg
 
 
:СhoiceComponentStoronProg
cls & echo. & echo Сторонние программы
echo    0 - Не задействован
echo    1 - Задействован
set /P СhoiceComponentStoronProg="   Ваш выбор: "
if not defined СhoiceComponentStoronProg goto :СhoiceComponentStoronProg
if "%СhoiceComponentStoronProg%"=="0" Set ComponentStoronProg=""
if "%СhoiceComponentStoronProg%"=="1" Set ComponentStoronProg="StoronProg"
cls & Echo.Echo Не правильно сделан выбор ! & Echo. & Echo.
ping -n 3 127.0.0.1 > NUL
goto :СhoiceComponentStoronProg
 
:СhoiceComponentDrivers
cls & echo. & echo Фиксы для драйверов
echo    0 - Не задействован
echo    1 - Задействован
set /P СhoiceComponentDrivers="   Ваш выбор: "
if not defined СhoiceComponentDrivers goto :СhoiceComponentDrivers
if "%СhoiceComponentDrivers%"=="0" Set ComponentDrivers=""
if "%СhoiceComponentDrivers%"=="1" Set ComponentDrivers="Drivers"
cls & Echo.Echo Не правильно сделан выбор ! & Echo. & Echo.
ping -n 3 127.0.0.1 > NUL
goto :СhoiceComponentDrivers
echo.
echo Настройки завершены
pause
Собственно чтобы при смене настроек эти настройки записывались в файл настроек ini и менялась строка с настройками Components=

ну и при выборе проекта, эти настройки опять же загрузились в выше указанные переменные...

Поможете ???
0
5 / 5 / 0
Регистрация: 24.11.2015
Сообщений: 224
08.04.2020, 09:58  [ТС]
FlasherX, Трудная затея?
0
6985 / 2875 / 1106
Регистрация: 06.06.2017
Сообщений: 9,765
08.04.2020, 13:06
Guman, я не особо ковырялся (особенно в нижнем коде), чтобы это понять. Что там за настройки такие и как с ними взаимодействовать, так и не понял. По чтению и записи в ini я бы предпочёл вспомогательные средства. Читать ещё ладно, если секция одна, а вот записывать... И вообще заголовок темы как-то не соответствует ныне запрошенному.
0
5 / 5 / 0
Регистрация: 24.11.2015
Сообщений: 224
12.04.2020, 10:43  [ТС]
FlasherX, О каких вспомогательных средствах идет речь? Может хотябы идейку подкинете...
Цитата Сообщение от FlasherX Посмотреть сообщение
Читать ещё ладно, если секция одна, а вот записывать...
Много всего попробовал, не удалось ни чего дельного сделать...
Цитата Сообщение от FlasherX Посмотреть сообщение
И вообще заголовок темы как-то не соответствует ныне запрошенному.
В принципе согласен, так как реализация изначальной задачи описанной в шапке достигнута.
Думаю администраторы читают это и разделят тему на два отдельных заголовка... Все таки очень сильно хочется увидеть правильное исполненные сопоставленной задачи.
0
6985 / 2875 / 1106
Регистрация: 06.06.2017
Сообщений: 9,765
12.04.2020, 10:58
Цитата Сообщение от Guman Посмотреть сообщение
О каких вспомогательных средствах идет речь?
О сторонних.

Не по теме:

Цитата Сообщение от Guman Посмотреть сообщение
Думаю администраторы читают это и разделят тему на два отдельных заголовка...
Админы мелочёвкой вообще не занимаются. А модераторы, как показывает практика, постольку-поскольку (если очень приспичит). Даже через треугольник далеко не всегда реагируют. Поэтому всё самостоятельно — с созданием новой темы и т. д.

0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
13.04.2020, 12:00
Список папок перед выбором должен формироваться автоматически?

Добавлено через 3 минуты
Не совсем понятно что хотите получить по итогу?

Добавлено через 1 минуту
Хотите при выборе каталога из списка каталогов получать информацию о его содержимом на основе файла INFO или что?
0
13.04.2020, 12:37
 Комментарий модератора 
Guman, не плодите темы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.04.2020, 12:37
Помогаю со студенческими работами здесь

Нужно вывести дату из текстового файла и узнать из какого промежутка она
переменная &quot;time&quot; задана в файле (input.txt), как строковое значение. Нужно вывести эту дату и сравнить с промежутками, затем вывести в...

Нужно ввести название компании и год основания в файл, а затем вывести их на экран из файла
Нужно ввести название компании и год основания в файл, а затем вывести их на экран ... из файла. #include&lt;iostream&gt; ...

Сохранение текстового файла .txt из Memo1.lines и.т.д , задавая название файла в Edit1
Добрый вечер ! Подскажите пожалуйста, сохраняю текстовой файл в Memo1 задавая имя файлу в Edit1, как только начинаю писать текст в Edit1,...

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

Как вывести название загружаемого файла?
Загружаю файл этим кодом:&lt;?php $uploadfile = &quot;images/&quot;.$_FILES; move_uploaded_file($_FILES, $uploadfile); ?&gt; Как вывести...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru