
У меня есть этот пакетный файл, и он создает пакетный файл в папке автозагрузки, который открывает определенный 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
Может ли кто-нибудь подсказать, что можно изменить, чтобы решить эту проблему?
решение1
Вы могли бы использоватьВЫЗОВи добавьте /MIN
переключатель сНАЧИНАТЬкоманда, чтобы сделать его более скрытым и гарантировать, что окно 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
Дополнительные ресурсы
решение2
Пожалуйста, ознакомьтесь с ссылкой ниже:
Как запустить пакетный файл, не открывая «командное окно»?
Если ссылка недоступна, один из ответов предлагает создать скрипт VBS, содержащий следующее:
CreateObject("Wscript.Shell").Run "your_batch_file.bat", 0, True
Где «your_batch_file.bat» — это имя вашего пакетного файла.
Сохраните приведенный выше код как скрипт Visual Basic, например: example.vbs, и запустите его.
решение3
вот почему и что делать:
по умолчанию START запустит эквивалент CMD /K, который открывает второе командное окно и оставляет его открытым. В большинстве случаев вам нужно, чтобы пакетный скрипт завершился, а затем вы просто закроете его консоль CMD, чтобы возобновить исходный пакетный скрипт. Это можно сделать, явно запустив CMD /C ...
Echo Starting
START /wait "demo" CMD /c demoscript.cmd
Echo Done