Как запускать файлы .BAT незаметно, без отображения окна командной строки

Запуск cmd из контекстного меню Пуска

Нажмите на Пуск правой кнопкой мыши или нажмите комбинацию Win X, причем клавишами быстрее, я гарантирую это;) Появится контекстное меню, в котором выбираем пункт Командная строка (администратор). Готово!

Через диспетчер задач

Если у вас запущен Диспетчер задач, то можно открыть cmd прямо из него. Для этого зайдем в меню Файл -> Запустить новую задачу.

Вводим cmd и ставим галочку чуть ниже Создать задачу с правами администратора. И затем ОК.

Через диспетчер задач (хитрый способ)

Третий способ очень похож на второй, но чуть более быстрый и не такой известный.

Начало такое же, то есть, в Диспетчере задач выбираем Файл -> Запустить новую задачу, но когда кликаете мышкой по этому пункту — удерживайте клавишу Ctrl. В этом случае сразу запускается cmd в режиме администратора, без лишних разговоров.

Запуск cmd из поиска Windows 10

Нажмите комбинацию Win S либо прицельтесь левой кнопкой мышки в значок лупы справа от кнопки Пуск. В поле поиска можно ввести либо на английском ‘cmd‘ либо на русском введите первые 5-6 букв от названия ‘Командная строка‘. Затем правой кнопкой мыши нажимаем на результате поиска, выбираем Запустить от имени администратора.

Запускаем cmd из меню Все приложения

Открываем Пуск, кликаем на Все приложения и отыскиваем пункт Служебные — Windows. Обычно он прячется в самом низу, так что промотайте колесиком мышки до самого конца.

Итак, нашли группу Служебные, раскрыли список программ внутри и обнаружили Командную строку. Правой кнопкой по ней кликаем, затем Дополнительно, потом Запуск от имени администратора.

Запуск из системного каталога WindowsSystem32

Можно запустить командную строку прямо из ее родной папки system32. Для этого заходим в Проводник / Мой компьютер, находим диск C, ищем папку Windows, идём туда, находим папку System32,

углубляемся все дальше и дальше в кроличью нору

:/>  Как удалить игру с microsoft store

заходим в неё. В папке System32 ищем файл

cmd.exe

. Выделяем его. И тут появляется два варианта.

Самый быстрый и простой: правой кнопкой мышки кликаем на cmd.exe и выбираем уже знакомый нам Запуск от имени администратора.

Другой вариант чуть больше времени занимает. При выделении файла сверху возникает надпись Средства работы с приложениями. Нажимаете туда левой кнопкой мыши, снизу вылезает еще одно меню, нажимаете на пункт Запустить от имени администратора.

Запуск cmd из любой папки Проводника

Этот вариант открытия командной строки доступен из любой папки Проводника Windows 10. Заходите в нужное вам место, заходите в меню Файл -> Открыть командную строку -> Открыть командную строку как администратор.

Запуск скрытых файлов .bat или .cmd (невидимый режим) с помощью nircmd

NirCmd — это многофункциональная утилита автоматизации командной строки от стороннего производителя Nirsoft. В прошлом мы неоднократно освещали NirCmd на нашем сайте.

Мы можем использовать NirCmd для запуска программы, скрипта или командного файла в скрытом режиме.

Загрузите NirCmd и распакуйте файл в каталог Windows.

В диалоговом окне «Выполнить» или в командной строке используйте следующий синтаксис для запуска пакетного файла или программы в скрытом режиме:

nircmd exec hide [path to batch file]

Пример:

nircmd exec hide "c:batch filessyncfiles.bat"

запустить пакетный файл скрытый - nircmd exec

Если вам нужно запустить пакетный файл с повышенными правами (от имени администратора), используйте следующую команду:

nircmd elevatecmd exec hide c:batch filessyncfiles.bat

(Справочник по командам NirCmd — exec)

Это оно! Если вам известен какой-либо другой способ запуска пакетного или CMD-файла в скрытом режиме, сообщите нам об этом.

Запуск скрытых файлов .bat или .cmd (невидимый режим) с помощью скрипта

Метод запуска Windows Script Host позволяет запускать программу или сценарий в невидимом режиме. Вот пример кода сценария Windows, который запускает командный файл с именем syncfiles.bat невидимо.

:/>  Как использовать команду Shutdown для выключения и перезагрузки Windows из командной строки

Ссылка: метод запуска. Установка параметра intWindowStyle в 0 скрывает окно.

Допустим, у нас есть файл с именем syncfiles.bat в C:Batch Files каталог. Давайте запустим его в скрытом режиме, используя Windows Scripting.

Запуск файлов .bat или .cmd в свернутом режиме

Чтобы запустить пакетный файл в свернутом состоянии окна, выполните следующие действия:

  1. Создайте ярлык для файла .BAT или .CMD. Для этого щелкните файл правой кнопкой мыши, выберите «Отправить на рабочий стол» (создать ярлык).
  2. Щелкните правой кнопкой мыши по ярлыку и выберите «Свойства».
  3. В раскрывающемся меню «Выполнить» выберите «Свернуть
  4. Нажмите ОК
  5. Дважды щелкните ярлык, чтобы запустить командный файл в свернутом состоянии окна.

Решение

Чтобы скрыть исполнение CMD- или BAT-файла, мы прибегнем к помощи другого скрипта, написанного на языке Visual Basic Script.

Откройте Блокнот, Notepad или другой текстовый редактор, скопируйте и вставьте в него следующий код:

Как запустить команду cmd.exe без окна и получить вывод?

Доброго времени суток!

Перерыл весь рунет и западный интернет в поисках сабжа. Но все способы не предполагают получения вывода(stdout).

Нашёл пример с popen(

https://qanda.tech/c/1015629/c-popen-command-witho…

но он компилируется

С изменениями скомпилировался

этот

способ, но он всё равно выводит консоль

зы В winapi я – полный нуб. Программировал под linux

Огромнейшее спасибо! Убил на поиски уже 4 дня

upd Нарыл ещё один способ, но он у меня не компилируется и с его помощью я не знаю, как получить возвращаемое значение:

Код

//
// Execute a command and get the results. (Only standard output)
//
CStringA ExecCmd(
    const wchar_t* cmd              // [in] command to execute
)
{
    CStringA strResult;
    HANDLE hPipeRead, hPipeWrite;

    SECURITY_ATTRIBUTES saAttr = { sizeof(SECURITY_ATTRIBUTES) };
    saAttr.bInheritHandle = TRUE;   //Pipe handles are inherited by child process.
    saAttr.lpSecurityDescriptor = NULL;

    // Create a pipe to get results from child's stdout.
    if ( !CreatePipe(&hPipeRead, &hPipeWrite, &saAttr, 0) )
        return strResult;

    STARTUPINFO si = { sizeof(STARTUPINFO) };
    si.dwFlags     = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;
    si.hStdOutput  = hPipeWrite;
    si.hStdError   = hPipeWrite;
    si.wShowWindow = SW_HIDE;       // Prevents cmd window from flashing. Requires STARTF_USESHOWWINDOW in dwFlags.

    PROCESS_INFORMATION pi  = { 0 };

    BOOL fSuccess = CreateProcessW( NULL, (LPWSTR)cmd, NULL, NULL, TRUE, CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi);
    if (! fSuccess)
    {
        CloseHandle( hPipeWrite );
        CloseHandle( hPipeRead );
        return strResult;
    }

    bool bProcessEnded = false;
    for (; !bProcessEnded ;)
    {
        // Give some timeslice (50ms), so we won't waste 100% cpu.
        bProcessEnded = WaitForSingleObject( pi.hProcess, 50) == WAIT_OBJECT_0;

        // Even if process exited - we continue reading, if there is some data available over pipe.
        for (;;)
        {
            char buf[1024];
            DWORD dwRead = 0;
            DWORD dwAvail = 0;

            if (!::PeekNamedPipe(hPipeRead, NULL, 0, NULL, &dwAvail, NULL))
                break;

            if (!dwAvail) // no data available, return
                break;

            if (!::ReadFile(hPipeRead, buf, min(sizeof(buf) - 1, dwAvail), &dwRead, NULL) || !dwRead)
                // error, the child process might ended
                break;

            buf[dwRead] = 0;
            strResult  = buf;
        }
    } //for

    CloseHandle( hPipeWrite );
    CloseHandle( hPipeRead );
    CloseHandle( pi.hProcess );
    CloseHandle( pi.hThread );
    return strResult;
} //ExecCmd

Оставьте комментарий