Как лучше открывать батник скрытно?
Ссылка скопирована
Нужно понять: мой бат файл открывает 2 доп. Консоли и устанавливает им директорию. С помощью.vbs пытаюсь запустить скрытно, но новым консольным окнам параметр скрытности не наследуется. Как это исправить?
Bat:
@echo off cd /d "C:\Users\bot" start "Main Bot" cmd /k venv\Scripts\python.exe main.py start "Converter" cmd /k venv\Scripts\python.exe -m xlsx_converter.converter
Vbs:
Set WshShell = CreateObject("WScript.Shell") WshShell.Run """C:\Scripts\start bot.bat""", 0, False
Нужно решить такую задачу?
Заказать помощь
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Лучший ответ
1
Другие ответы (0)
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопроскомментарий
Вам также может быть интересно
VPN
Как правильно настроить vless для Android TV?
1 ответ
Pyrogram
Как правильно зарегистрировать юзер бота в Telegram?
1 ответ
печатные-платы
Как заставить запускаться программу M3.exe от компании Hanxing AOI в инспекционной машине на Windows 7 Pro?
1 ответ
VPN
Почему подключение через VPN работает только на wi-fi, а через кабель нет, где ошибка?
1 ответ

Если батник запускает дополнительные консоли через start, то скрытие самого .bat через VBS не скрывает дочерние окна. Вы скрываете только первый процесс, а новые cmd.exe создаются уже отдельно и открывают свои окна. Нужно либо запускать каждую дочернюю команду скрыто, либо не создавать новые консоли через start.
Если задача легальная и это ваш собственный скрипт обслуживания, самый нормальный вариант - Планировщик заданий Windows. Там можно запускать задачу без отображения окна, от нужного пользователя и с нужной рабочей папкой.
Если всё же нужен VBS, запускайте команды через WScript.Shell.Run с параметром окна 0:
Set shell = CreateObject("WScript.Shell") shell.Run "cmd /c cd /d C:Usersbot && script1.bat", 0, False shell.Run "cmd /c cd /d C:Usersbot && script2.bat", 0, False
Третий параметр False означает не ждать завершения. Если нужно ждать, ставьте True.
Если в батнике сейчас так:
start cmd /k "cd /d C:Usersbot && npm run one" start cmd /k "cd /d C:Usersbot && npm run two"
то окна будут появляться. Замените логику на запуск без start или перенесите запуск каждого процесса в VBS/PowerShell.
Для PowerShell можно использовать Start-Process с WindowStyle Hidden:
Start-Process cmd.exe -ArgumentList '/c cd /d C:Usersbot && script1.bat' -WindowStyle Hidden
Важно: не используйте такие способы для скрытого запуска чужих/вредоносных процессов. Для нормальной автоматизации лучше Планировщик заданий, сервис Windows или NSSM. Они проще диагностируются, логируются и не выглядят как попытка спрятать неизвестный процесс.