Запустить пакетный файл при запуске
Существует ли способ запуска нескольких программ в командном файле при запуске системы? В дополнение к этому, в этом пакетном файле я хотел бы иметь возможность сказать: как только я выполню программу, подожди, пока эта программа полностью загрузится, и запусти следующую перечисленную программу.
Любая помощь будет оценена.
9 ответов
У меня была та же проблема в Win7, касающаяся запуска сценария (.bat) при запуске (когда компьютер загружается, когда кто-то входит в систему), который изменял бы параметры сети с помощью netsh. То, что закончилось тем, что работало для меня, было следующим:
- Войти с учетной записью администратора
- Нажмите на начало и введите "Планировщик заданий" и нажмите Return
- Нажмите "Библиотека планировщика заданий".
Нажмите "Создать новую задачу" в правой части экрана и установите параметры следующим образом:
а. Установите учетную запись пользователя в SYSTEM
б. Выберите "Запуск с самыми высокими привилегиями".
с. Выберите ОС для Windows7
- Нажмите на вкладку "Триггеры", а затем нажмите "Новый…". Выберите "При запуске" из выпадающего меню, нажмите "Включено" и нажмите "ОК".
- Нажмите на "вкладку Действия", а затем нажмите "Новый…". Если вы запускаете.bat файл, используйте cmd в качестве программы, вставьте /c .bat В поле Добавить аргументы
- Нажмите "ОК", затем "ОК" на панели задач создания, и теперь это будет запланировано.
- Добавьте скрипт.bat в место, указанное в событии вашей задачи.
- Наслаждаться.
Чтобы запустить пакетный файл при запуске: запустите >> все программы >> щелкните правой кнопкой мыши запуск >> открыть >> щелкните правой кнопкой мыши пакетный файл >> создать ярлык >> перетащите ярлык в папку запуска.
Путь к папке: [D|C]:\Profiles\{User}\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
Перейдите в Run (WINDOWS + R) и введитеshell: startup, вставьте туда свой файл.bat!
Чтобы запустить командный файл в начале вашей системы, вы также можете использовать раздел реестра.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Здесь вы можете создать строку. В качестве имени вы можете выбрать что угодно, а данные - это полный путь к вашему файлу.
Также есть ключ реестра
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
запускать что-то только при следующем запуске вашей системы.
Существует несколько способов запуска командного файла при запуске. Тот, который я обычно использую, через планировщик задач. Если вы нажмете клавишу Windows, то напечатайте планировщик задач, он появится в качестве опции (или найдите через административные инструменты).
Когда вы создаете новое задание, вы можете выбрать один из вариантов запуска, таких как "При входе в систему" для конкретного пользователя, при разблокировке рабочей станции и т. Д. Затем в действиях вы выбираете запуск программы и указывает полный путь к пакетному сценарию (также имеется возможность поставить любые необходимые аргументы командной строки).
Вот пример скрипта для запуска переполнения стека в Firefox:
@echo off
title Auto launch Stack Overflow
start firefox http://stackru.com/questions/tagged/python+or+sql+or+sqlite+or+plsql+or+oracle+or+windows-7+or+cmd+or+excel+or+access+or+vba+or+excel-vba+or+access-vba?sort=newest
REM Optional - I tend to log these sorts of events so that you can see what has happened afterwards
echo %date% %time%, %computername% >> %logs%\StackruAuto.csv
exit
RunOnce
RunOnce - это опция, у которой есть несколько клавиш, которые можно использовать для указания команды, запускаемой при запуске (в зависимости от того, касается ли это пользователя или вся система):
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
установка значения:
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce" /v MyBat /D "!C:\mybat.bat"
С установкой и восклицательным знаком в начале и если сценарий существует со значением, отличным от 0, ключ реестра не будет удален, и сценарий будет выполняться каждый раз при запуске
SCHTASKS
Вы можете использовать SCHTASKS и запускающее событие:
SCHTASKS /Create /SC ONEVENT /MO ONLOGON /TN ON_LOGON /tr "c:\some.bat"
или же
SCHTASKS /Create /SC ONEVENT /MO ONSTART/TN ON_START /tr "c:\some.bat"
Папка автозагрузки
У вас также есть две папки автозагрузки - одна для текущего пользователя и одна глобальная. Там вы можете скопировать свои скрипты (или ярлыки), чтобы запустить файл при запуске
::the global one
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
::for the current user
%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
1. Скопируйте следующие строки в Блокнот.
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\Users\toto\your_file.bat" & Chr(34), 0
Set WshShell = Nothing
Примечание. Замените имя / путь пакетного файла в сценарии соответствующим образом в соответствии с вашими требованиями.
2. Сохраните файл с расширением .VBS, например launch_bat.vbs.
3. Создайте новый файл .bat, в нашем случае your_file.bat
4. Запишите содержимое вашего .bat файла. Пример:
@echo off
php c:\laragon\www\my_app\artisan serve --host=127.0.0.1 --port=8000
5. Запускаем your_file.bat и радуйтесь :)
Другой вариант - запускать пакетный файл как службу и установить запуск службы на "Автоматический" или "Автоматический (отложенный запуск)". Проверьте этот вопрос для получения дополнительной информации о том, как это сделать, лично мне больше всего нравится NSSM.
Если ваш язык Windows отличается от английского, вы можете запустить планировщик заданий с помощью
- Нажмите Windows+X
- Выберите язык перевода "Управление компьютером"
- Следуйте инструкции в ответе, предоставленном Prankin