Как запустить batch file

229
10 февраля 2019, 07:00

Есть у нас batch file, и в нем:

mkdir test
dir

Как можно запустить этот файл?

Answer 1
#include <windows.h>
#include <stdio.h>
void main() {
    STARTUPINFO si;
    PROCESS_INFORMATION pi;
    ZeroMemory(&si, sizeof(si));
    si.cb = sizeof(si);
    ZeroMemory(&pi, sizeof(pi));
    LPSTR cmdLine = (LPSTR)"C:\\rrr.bat";
    if (CreateProcess(NULL, cmdLine, NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi)) {
        printf_s("Создан процесс!\n");
        WaitForSingleObject(pi.hProcess, INFINITE);
        CloseHandle(pi.hProcess);
        CloseHandle(pi.hThread);
    }
    else
        printf_s("Ошибка создания процесса! %d", GetLastError());
    system("pause");
}

если хочешь, что бы не создавалось новое окно, замени CREATE_NEW_CONSOLE на 0

использовать system для создания процесса - плохая практика

https://docs.microsoft.com/ru-ru/windows/desktop/ProcThread/creating-processes

Answer 2

Вот это

#include <stdlib.h>
#include <stdio.h>
int main()
{
    system("echo mkdir test > rrr.bat");
    system("echo dir >> rrr.bat");
    system("rrr.bat");
}

компилируется Visual C++ без замечаний, создает rrr.bat с вашим содержимым, вызывает его...

G:\Tmp\Test>test.exe
G:\Tmp\Test>mkdir test
G:\Tmp\Test>dir
 Том в устройстве G имеет метку Data
 Серийный номер тома: 40D0-D63A
 Содержимое папки G:\Tmp\Test
10.10.2018  09:24    <DIR>          .
10.10.2018  09:24    <DIR>          ..
10.10.2018  09:24                19 rrr.bat
10.10.2018  09:24    <DIR>          test
10.10.2018  09:24               163 test.cpp
10.10.2018  09:24           112 640 test.exe
               3 файлов        112 822 байт
               3 папок  97 676 894 208 байт свободно

Почему не получается у вас - посмотрите внимательно, все ли вы делаете верно...

READ ALSO
mariadb не пускает к соединению

mariadb не пускает к соединению

прошу помощипри соединении из java к mairadb получаю ошибку could not create connection to database server при этом такое становится когда количество запросов возрастает

208
При запуске каждого теста в консоль выводиться не понятно что

При запуске каждого теста в консоль выводиться не понятно что

Кто знает, о чем эти строки хотят сообщить?

240
Поиск метода по запросу

Поиск метода по запросу

попробую изложить суть задачи

329