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

Тема в разделе "MS Visual C++", создана пользователем NikV, 28 дек 2010.

  1. NikV

    NikV Гость

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

    Если я Вас правильно понял:
    Код (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.
     
  3. Гость

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

Поделиться этой страницей