Головна » як » Чи можна запускати пакетний файл Windows без видимого командного рядка?

    Чи можна запускати пакетний файл Windows без видимого командного рядка?

    Пакетні файли є зручним способом виконувати ряд команд у Windows, але чи не можна їх невидимо запускати у фоновому режимі? Читайте, як дізнатися.

    Сьогоднішня сесія запитань та відповідей приходить до нас люб'язно SuperUser - підрозділ Stack Exchange, групування веб-сайтів із запитаннями та відповідями на рівні спільноти..

    Питання

    Читач SuperUser Jake хоче запустити BAT-файл непомітно, він пише:

    Я встановив ruby ​​gem називається Redcar, який запускається з командного рядка. Коли він запускається, він краде оболонку, поки вона не закінчиться, тому я повинен створити нове вікно оболонки, щоб продовжити роботу з командного рядка. Оболонка, яку я використовую, є оболонкою GITBash з MySysGit.

    Я знайшов файл Redcar.bat, який призначений для запуску Redcar як ярлик, я вважаю, але я не хочу, щоб додаткове вікно командного рядка відкривалося, коли я запускаю BAT-файл.

    Як мені просто запустити BAT, не бачачи підказки?

    Чи є рішення для прихованого швидкого бажання Джейка?

    Відповіді

    Співробітник SuperUser Afrazier відповідає поєднанням поганих і хороших новин:

    Ви не можете виконати командний файл із вбудованим командним рядком, щоб відкрити вікно, доки пакетний файл не вийде.

    Що ти може роблять кроки, щоб переконатися, що пакетний файл виходить як можна швидше. Якщо це можливо, змініть пакетний файл для запуску будь-якої програми з початок команду. За замовчуванням, початок повертається негайно, не чекаючи завершення програми, тому пакетний файл продовжуватиме працювати і, мабуть, негайно вийде. Змініть мінімізацію цього шляху, змінивши ярлик, щоб запустити пакетний файл, і ви побачите лише спалах панелі завдань, навіть не побачивши вікно на екрані.

    Одне зауваження до цього полягає в тому, що якщо ви запускаєте програму з консольного режиму, яку мають багато інтерпретаторів сценаріїв, пакетний файл буде чекати, коли програма вийде, а використання початок з'явиться нове вікно консолі. У цьому випадку потрібно запустити версію інтерпретатора на базі Windows замість консольної - ні початок необхідно. Для Perl, ви б запустили wperl.exe замість perl.exe. Для Python це pythonw.exe замість python.exe. У старому розповсюдженні Win32 Ruby я завантажив rubyw.exe, які повинні робити те ж саме.

    Остаточна можливість полягає у використанні інструменту третьої сторони для запуску командного рядка з прихованим вікном. Я чув про такі речі, але ніколи не користувався ними, так що я не знаю нічого, зокрема, щоб вказати на вас.

    Читачі також вказали йому на інший потік SuperUser, який висвітлює, як можна використовувати скрипт Visual Basic для того, щоб вийти за рамки мінімізації видимості і відверто приховати підказку CMD. У цій темі Гаррі MC пояснює:

    Рішення 1:

    Збережіть цей рядок тексту як файл invisible.vbs:

    CreateObject (“Wscript.Shell”). Запуск “” ”” & WScript.Arguments (0) & “” ”, 0, False

    Для запуску будь-якої програми або пакетного файлу невидимо, використовуйте його так:

    wscript.exe “C: Незважаючи на invisible.vbs” “C: Деяке інше місце

    Щоб також можна було передати / передати список аргументів, використовуйте тільки дві подвійні лапки

    CreateObject ("Wscript.Shell"). Запустити "" & WScript.Arguments (0) & "", 0, False

    наприклад: Invisible.vbs “Kill.vbs ME.exe”

    Рішення 2:

    Використовуйте інструмент командного рядка для безшумного запуску процесу: Quiet.

    Використання будь-якого з перерахованих вище рішень на основі рівня комфорту за допомогою інструментів VBS та інструментів третьої сторони, як мінімум, зменшить видимість вікна CMD або вилучить його.


    Маєте щось додати до пояснення? Звучить в коментарях. Хочете прочитати більше відповідей від інших технологічних користувачів Stack Exchange? Перегляньте повний потік обговорення тут.