¿Puedes iniciar un programa al iniciar Windows usando un archivo bat y enviarle la ruta del archivo?

¿Puedes iniciar un programa al iniciar Windows usando un archivo bat y enviarle la ruta del archivo?

¿Puede un archivo bat o vbs tomar un argumento (una ruta a un archivo exe) y luego crear un acceso directo a ese archivo y colocarlo en la carpeta de inicio o agregar una entrada de registro para ejecutar ese exe al inicio de Windows?

pero quiero que el mismo script pueda eliminar también la entrada de inicio (en todas las versiones del sistema operativo).

así que supongo que al script se le deberían enviar dos parámetros/argumentos: 1 - el archivo/exe que se ejecutará al inicio 2 - si se debe agregar o eliminar la entrada desde el inicio

es posible?

Respuesta1

Primero, me gustaría recomendarle que verifique las ubicaciones de las claves de ejecución en el registro para cualquier sistema operativo anterior a Vista, ya que ha pasado mucho tiempo desde que trabajé en ellas, por lo que puede haber diferencias que no recuerdo.

Si entiendo su pregunta correctamente, este script por lotes debería hacer lo que usted desea. Le brinda un menú simple para elegir agregar o eliminar un programa de las teclas de ejecución (inicio) y luego le permite ingresar el nombre y la ruta del programa. al ejecutable.

: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

Alternativamente, si solo necesita poder agregar o eliminar el mismo programa y no necesita ingresar varios nombres de programas o rutas exe, puede modificar el script de esta manera y reemplazar %keyname% con el nombre de su programa, y %expath% con la ruta a su ejecutable (sin %) y luego guárdelo. Asegúrese de que su nombre clave sea el mismo tanto al agregar como al eliminar.

También puede intercambiar las líneas "ir a comenzar" por "salir" si solo desea salir del script después de la acción seleccionada.

: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

información relacionada