можно ли запустить программу при запуске Windows с помощью bat-файла и отправить ей путь к файлу

можно ли запустить программу при запуске Windows с помощью bat-файла и отправить ей путь к файлу

может ли файл bat или vbs принимать аргумент (путь к exe-файлу), а затем создать ярлык для этого файла и поместить его в папку автозагрузки или добавить запись в реестр для запуска этого exe-файла при запуске Windows?

но я хочу, чтобы тот же скрипт мог также удалить запись автозагрузки (на всех версиях ОС).

поэтому я предполагаю, что скрипту необходимо будет отправить два параметра/аргумента: 1 - файл/exe для запуска при запуске 2 - добавить или удалить запись из автозагрузки

Это возможно?

решение1

Во-первых, я хотел бы посоветовать вам дважды проверить расположение ключей «Выполнить» в реестре для всех операционных систем старше Vista, поскольку я давно с ними не работал, поэтому могут быть различия, которых я не помню.

Если я правильно понял ваш вопрос, этот пакетный скрипт должен делать то, что вам нужно. Он предоставляет вам простое меню для выбора добавления или удаления программы из ключей запуска (автозагрузки), а затем позволяет ввести имя программы и путь к исполняемому файлу.

:begin
cls
@echo off
echo   Program startup Utility
echo.
echo    1. Add Program to Startup
echo    2. Remove Program From Startup
echo    x. Exit

set /p choice=  Choose A Service:
if not '%choice%'== set %choice%=choice:~0,1%

if '%choice%'=='1' goto :addstartup
if '%choice%'=='2' goto :delstartup
if '%choice%'=='x' goto :exit

:addstartup
cls
echo/
echo/
echo    Add Program to Startup
echo    or type back to go to main menu
echo/
set /p keyname= Please State Program Name:

if '%keyname%'=='back' goto :begin

set /p expath= Please Enter Path to Executible:

if '%expath%'=='back' goto :begin

reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Run\ /v %keyname% /t REG_SZ /d "%expath%"

timeout /t 3 >nul

goto begin


:delstartup
cls
echo/
echo  Remove Program From Startup
reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Run\ /s
echo/
set /p keyname= Please Enter Program Name:
reg delete HKLM\Software\Microsoft\Windows\CurrentVersion\Run\ /v "%keyname%" /f

timeout /t 3 >nul

goto begin

В качестве альтернативы, если вам просто нужно иметь возможность добавлять или удалять одну и ту же программу и не нужно вводить несколько имен программ или путей к exe-файлам, то вы можете изменить скрипт следующим образом, заменив %keyname% на имя вашей программы, а %expath% на путь к вашему исполняемому файлу (без %), а затем сохранить его. Убедитесь, что ваше keyname одинаковое как при добавлении, так и при удалении.

Вы также можете заменить строки «goto begin» на «exit», если вы просто хотите выйти из скрипта после выбранного действия.

:begin
cls
@echo off
echo   Program startup Utility
echo.
echo    1. Add Program to Startup
echo    2. Remove Program From Startup
echo    x. Exit

set /p choice=  Choose A Service:
if not '%choice%'== set %choice%=choice:~0,1%

if '%choice%'=='1' goto :addstartup
if '%choice%'=='2' goto :delstartup
if '%choice%'=='x' goto :exit

:addstartup
cls
reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Run\ /v %keyname% /t REG_SZ /d "%expath%"

timeout /t 2 >nul

goto begin

:delstartup
cls
reg delete HKLM\Software\Microsoft\Windows\CurrentVersion\Run\ /v "%keyname%" /f

timeout /t 2 >nul

goto begin

Связанный контент