Аватар для Skif-N1
1 / 1 / 1
Регистрация: 26.11.2012
Сообщений: 24

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

30.03.2013, 13:24. Показов 10926. Ответов 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
18033 / 7736 / 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
18033 / 7736 / 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
18033 / 7736 / 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
18033 / 7736 / 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
18033 / 7736 / 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
18033 / 7736 / 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
18033 / 7736 / 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
18033 / 7736 / 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru