Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/50: Рейтинг темы: голосов - 50, средняя оценка - 5.00
 Аватар для Skif-N1
1 / 1 / 1
Регистрация: 26.11.2012
Сообщений: 24

Вывод имён файлов каталога в виде списка, способ представления которого определяется выбором пользователя

30.03.2013, 13:24. Показов 11300. Ответов 60
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В этой программе мне не хватает кнопки Выход/Закрыть именно клавишей "ESC" (escape)
т.е. Нажал ESC - батник закрылся.
Другие советы по улучшению программы принимаються тоже)))
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
:m1
Echo Выберите способ представления оглавления:
Echo.
echo 1 - По времени создания (Возрастание)
echo 2 - Убывание
echo 3 - По размеру (Возрастание)
echo 4 - Убывание
echo Esc - exit 
echo.
Set /p choice=Ваш выбор: 
chcp 1251
if "%choice%"=="1" dir /b /od /s /a *.doc *.txt >1.txt
if "%choice%"=="2" dir /b /o-d /s /a  *.doc *.txt >2.txt
if "%choice%"=="3" dir /b /os /s /a *.doc  *.txt >3.txt
if "%choice%"=="4" dir /b /o-s /s /a *.doc  *.txt >4.txt
if ?????????????????? exit /b
if "%choice%"=="%" echo error
Echo.
:error
cls
goto m1
Echo.
pause
__
Работает стабильно при сохранении кода в 866(OEM) кодировке. Я использовал AkelPad 4.8.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.03.2013, 13:24
Ответы с готовыми решениями:

Вывод списка файлов из каталога
Задача: вывести список файлов с расширением .king в ListView. На моём этапе выводит все что есть в папке. Подкиньте какой-то...

Вывод списка файлов из каталога
Указывает ошибку на ShowDirectory, ListBox1, Caption. Что нужно делать и что значит ShowDirectory??? Помогите пожалуйста.

Вывод списка имён каталогов и поиск в этих каталогах файлов с определёнными расширениями
Всем привет, прошу прощения , но в программировании я полный ноль, нужной мне инфы не нашел ( может плохо искал :( ). В общем задача такая,...

60
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18035 / 7738 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
20.03.2014, 01:42
Студворк — интернет-сервис помощи студентам
sotik, это называется не автоматически, а циклически.
Надо просить Charles Kludge, чтобы добавил нужный функционал тайм-аута с выбором кнопки по умолчанию по типу как это делает утилита choice с ключами /t и /d.
Но будет ли она отлавливать очередь буфера нажатых клавиш командной строки, введенных еще до запуска этой утилиты, большой вопрос.
Утилита choice очередь не воспринимает.
0
2 / 2 / 0
Регистрация: 20.01.2014
Сообщений: 87
04.04.2014, 13:10
Подскажите пожалуйста,а где можно глянуть коды клавишь?
0
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
04.04.2014, 13:15
Дык, у Ральфа.
1
2 / 2 / 0
Регистрация: 20.01.2014
Сообщений: 87
04.04.2014, 13:41
Я там ниче не понял. вобщем какой код у стрелки вверх и стрелки вниз?
Делаю Радио на cmd...

Добавлено через 6 минут
вобщем нашел:
PageUp
33
0×21
VK_PRIOR

PageDown
34
0×22
VK_NEXT

Добавлено через 12 минут
Ну а оно не работает:
Bash
1
2
3
4
5
6
 
:Menu
echo Выбери стрелками нужный пункт
getch32
if %errorlevel%==33 (goto Menu) else (goto Start)
:Start
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18035 / 7738 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
04.04.2014, 21:00
sotik, та Вы сами можете "попросить" утилиту написать какой код у клавиши:

Bash
1
2
3
4
5
@echo off
:begin
getch32
echo %errorlevel%
goto begin
1
Клюг
 Аватар для Charles Kludge
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
04.04.2014, 21:49
Цитата Сообщение от sotik Посмотреть сообщение
Делаю Радио на cmd..
Вот теперь поясните Вашу мысь.
0
2 / 2 / 0
Регистрация: 20.01.2014
Сообщений: 87
04.04.2014, 21:59
Как пояснить...
Ну вот пока что получилось:
Вложения
Тип файла: 7z Радио Наум.7z (18.8 Кб, 15 просмотров)
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18035 / 7738 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
05.04.2014, 01:27
Написал альтернативную утилиту, чтобы можно было получить 2-й байт.
(это определение стрелок и клавиш F1-F12).

Поскольку через Errorlevel мы не можем вернуть одновременно 2 значения,
для 2-байтовых я закодировал результат так:
- если байт = 0, к результату прибавляется 1000.
- если байт = 244, то + 2000.
- если байт = что-то другое, то +3000.

В остальном коды возвращаются согласно ANSI.

source
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <conio.h> 
 
int main() { 
    int modif, ret;
    
    ret = _getch();
    if ( _kbhit() ) {
        modif = ret;
        ret = _getch();
        switch (modif) {
        case 0:
            ret += 1000;
            break;
        case 224:
            ret += 2000;
            break;
        default:
            ret += 3000;
            break;
        }
    }
    return ret;
}
Вложения
Тип файла: zip ScanCode.zip (56.0 Кб, 44 просмотров)
1
 Аватар для KiraLis39
9 / 10 / 1
Регистрация: 23.07.2014
Сообщений: 346
25.07.2014, 10:14
Хорошо, а если писать ВАТ в удобном блокноте SynWrite, там есть при нажатии КНТРЛ+. такое окошко с кодовыми значками и символами? Нет ескейпа?

Можно же найти по номеру значок ескейпа и на его событие назначить close в конце-концов..
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18035 / 7738 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
25.07.2014, 12:02
Положите рядом с батником утилиту scancode.exe

Выполните батник:

Bash
1
2
3
4
@echo off
scancode
echo %errorlevel%
pause
Нажмите ESC и увидите код нажатой клавиши без необходимости смотреть таблицу.
0
 Аватар для KiraLis39
9 / 10 / 1
Регистрация: 23.07.2014
Сообщений: 346
26.07.2014, 13:04
Ага, это если мне не нужен, к примеру, знак U+2764. Как его нажмешь то? Через АЛЬТ эксперементировать?
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18035 / 7738 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
26.07.2014, 16:17
Я не понимаю Вашего вопроса.
0
 Аватар для KiraLis39
9 / 10 / 1
Регистрация: 23.07.2014
Сообщений: 346
26.07.2014, 16:47
Ну вот я у себя в блокноте SynWrite, в ВАТ, нажал комбинацию и вижу таблицу знаков, откуда могу вставить знак bksp или сердечко там, нотки.. А как я через программу определяющую код возврата с клавиатуры получу значение нотки? А просто кнопки можно скачать таблицу всю с той же википедии и распечатать себе на стену за монитором.

Добавлено через 52 секунды
так же я пользуюсь иногда Альт+255, она так же есть с той таблице. Полезная вещь.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18035 / 7738 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
26.07.2014, 16:54
Зачем это нужно?

Моя утилита не поддерживает ввод через ALT +
0
 Аватар для KiraLis39
9 / 10 / 1
Регистрация: 23.07.2014
Сообщений: 346
26.07.2014, 17:10
Я о том и говорю, для подобных случаев этот блокнот и советую. К примеру мне нужны в моейц программе такие знаки - это часть ее работы. Потому в моем случае такой редактор - большой плюс. Может еще кому-то пригодится эта инфа.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18035 / 7738 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
26.07.2014, 17:14
Тогда лучше напишите в этой теме: Кто какие программы использует для написания батников?
+ преимущества этого ПО
+ скрин, будет сразу понятно.
0
 Аватар для KiraLis39
9 / 10 / 1
Регистрация: 23.07.2014
Сообщений: 346
26.07.2014, 17:17
Цитата Сообщение от Skif-N1 Посмотреть сообщение
Работает стабильно при сохранении кода в 866(OEM) кодировке. Я использовал AkelPad 4.8.
Я сейчас на эту тему подсказываю. Реклама - уже пассивный процесс..
0
 Аватар для Malysh-ok
2 / 2 / 0
Регистрация: 17.10.2013
Сообщений: 62
09.10.2018, 07:42
Цитата Сообщение от Dragokas Посмотреть сообщение
Написал альтернативную утилиту, чтобы можно было получить 2-й байт.
(это определение стрелок и клавиш F1-F12).
Вот это однозначно в шапку нужно (точнее сюда)!
Спасибо еще раз!
0
 Аватар для Malysh-ok
2 / 2 / 0
Регистрация: 17.10.2013
Сообщений: 62
10.10.2018, 19:54
Цитата Сообщение от Dragokas Посмотреть сообщение
Написал альтернативную утилиту, чтобы можно было получить 2-й байт.
(это определение стрелок и клавиш F1-F12).
Мне не понятно, зачем (при каких условиях) прибавлять 3000? По-моему - это лишнее. И еще, вроде более правильный код - это сначала вызывать _kbhit(), или я не прав (см. ниже)?

Тоже написал утилиту, чтобы можно было получить 2-й байт. При этом есть возможность очистить консольный буфер ввода. Это ОЧЕНЬ полезно, если в результате долгого выполнения куска bat-файла пользователь активно долбил клавиши, и к моменту вызова утилиты весь этот мусор сидит в буфере ввода.
Sourse
C++
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
// Если указан аргумент -reset - программа очищает
// консольный буфер ввода.
#include <conio.h> 
#include <Windows.h>
using namespace std;
int main(int argc, char* argv[]) { 
    int modif, ret;
    char key[10];
    HANDLE hStdin;
    
    strcpy(key, "-reset");
    for (int i=1; i<argc; i++) {
        if (strcmp(argv[i], key) == 0) {
            hStdin = GetStdHandle(STD_INPUT_HANDLE);
            FlushConsoleInputBuffer(hStdin);
            break;
        }
    }
 
    while( !_kbhit() ) {}
    modif = _getch();
    switch (modif) {
    case 0:
        ret = _getch();
        ret += 1000;
        break;
    case 224:
        ret = _getch();
        ret += 2000;
        break;
    default:
        ret = modif;
        break;
    }
    return ret;
}
Вложения
Тип файла: zip ScanCodeExt.zip (16.5 Кб, 15 просмотров)
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18035 / 7738 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
11.10.2018, 18:50
Malysh-ok, хз, мне например такой код выдаёт, когда нажимаешь одновременно две основные клавиши, например A + S.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.10.2018, 18:50

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

Вывод списка файлов из каталога в StringGrid
Доброе утро всем! Разрабатываю приложение, которое выводит список названий pdf файлов и количество страниц в них из определенного...

Написать программу, которая обеспечивает:начальное формирование каталога файлов;вывод каталога файлов;удаление файлов...
Уважаемые хакеры!Прошу вашей помощи!Я в СИ не особо шарю.((( А на днях уже сдавать.Очень рассчитываю на любую вашу помощь. Вот задача. ...

Вывод списка файлов в компонент из каталога выбираемого в TDirectoryListBox
Всем доброго времени суток! Можно ли вывести список файлов (например в ListBox) из каталога, выбираемого через компонент...

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


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru