Процесс пакетного файла оставляет дополнительную командную строку открытой

2

У меня есть этот командный файл, и он создает командный файл в папке автозагрузки, который открывает определенный URL-адрес веб-сайта. Моя проблема в том, что когда он запускается, он также оставляет пустую командную строку открытой.

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

Вот код:

@echo off

cd C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

echo @echo off > startup.bat

echo start (link) >> startup.bat

start startup.bat

Может ли кто-нибудь помочь указать, что я могу изменить, чтобы решить эту проблему?

INTENSEFIRE
источник
FYI. , , Как запустить командный файл полностью скрытым \ без запуска командного окна и как выйти из командного окна после его запуска - это совершенно разные задачи. Ни один из этих ответов в этой возможной двойной ссылке из вашего списка комментариев ничего о EXIT или другом синтаксисе, который я использовал в моем ответе ниже с этим методом.
Сок Pimp IT
Когда вы редактировали мой вопрос, вы полностью изменили его. Это оставляет окно открытым по причине, которую я не знаю. 2 оригинальные окна, которые он побежал близко. Ваше решение все равно помогло. Не дубликат спрашивал, почему открывалось дополнительное окно.
INTENSEFIRE

Ответы:

2

Вы можете использовать CALL и добавить /MINпереключатель с помощью команды START, чтобы сделать его более скрытым и гарантировать, что окно CMD исчезает при работе в соответствии с настройкой логики в приведенном выше примере .

Я сделал несколько быстрых корректировок и добавил эту логику, чтобы у вас был точный пример того, что я использовал и подтвердил работы, когда вы объясняете, что это нужно для работы.

Пример скрипта

@echo off

CD /D C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

echo @echo off > startup.bat
echo START /MIN "" "https://google.com">> startup.bat
echo EXIT /B>> startup.bat

CALL startup.bat
EXIT /B

Дополнительные ресурсы

Сок Pimp IT
источник
PIMP_JUICE_IT, помечать вопросы как дубликаты, если они существуют. Отвечая на дубликаты вопросов, пользователи отговаривают искать ответы в первую очередь и помогают заполнить сайт шумом. См. Meta Stack Exchange для получения дополнительной информации.
Канадский Люк
Я прочитал его, но только один ответ, и, кажется, он согласен с дубликатами, пометьте их
канадец Люк
1

Пожалуйста, посмотрите на ссылку ниже:

Как запустить командный файл без запуска «командного окна»?

Если ссылка недоступна, в одном ответе указывается создание сценария VBS, который содержит следующее:

CreateObject("Wscript.Shell").Run "your_batch_file.bat", 0, True

Где «your_batch_file.bat» - это имя вашего пакетного файла.

Сохраните вышеперечисленное в виде визуального базового сценария, например: example.vbs, и запустите его.

kruschk
источник
1
Здравствуйте, Крушк, если вы найдете ссылку на сайте, которая отвечает на вопрос, вы должны пометить вопрос как дубликат, а не размещать ссылку и контент как совершенно отдельный ответ.
Канадский Люк
Эй, Люк, как мне пометить как дубликат? Я вижу только варианты, относящиеся к спаму или низкого качества. Я просто хотел выручить парня, потому что я не могу комментировать посты, которые пока не мои!
kruschk
Нажмите «Пометить» под вопросом и выберите «Дублировать». Поскольку я уже вставил ссылку, вы можете нажать на вопрос из списка и нажать «Пометить».
канадский Люк
У меня есть только варианты помечать как "спам", "грубый или оскорбительный", "очень низкое качество" или "при необходимости вмешательства модератора"! Даже после того, как погуглить, я не могу найти его ...
kruschk
Хорошо, не волнуйтесь об этом
канадец Люк