• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Интерпретатор пакетных файлов Bat

  • Автор темы NikV
  • Дата начала
N

NikV

Здравствуйте!!
Мне надо считывать программно какой нибудь bat файл. и если какая то строка начинается с команд цикла (while или for)
то самому распозновать строчку, а если команды цикла нет то распозновать команды надо встроенным интерпретатором(программно)
Вот как сделать , чтобы эту строку распозновал встроенный интерпретатор хочу спросить.
 
G

Guest

Если я Вас правильно понял:
C++:
ifstream in ("file.bat");
char *stroka = new char[256];
in >> stroka;
if (!strncmp (stroka, "for", 3) || !strncmp (stroka, "while", 5))
{
// Тут сами распознаём...
}
else
{
// Тут распознавание интерпретатором.
system (stroka);
}
НО! Этот код с интерпретатором вряд ли работать будет, так как in >> stroka если я правильно помню, читает только до первого пробела/перехода на новую строку/табуляции и т.д.

Добавлено: Надо будет подумать над чтением всей строки. А вообще, чтобы вогнать строку во встроенный интерпретатор - юзай функцию system.
 
G

Guest

Вот, пришло кое-что в голову:
C++:
ifstream in ("file.bat");
char *stroka = new char[256];
in.getline (stroka, 256);
Читает 256 символов, если доходит до перевода строки - прекращает.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!