
¿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