você pode iniciar um programa na inicialização do Windows usando o arquivo bat e enviar o caminho do arquivo

você pode iniciar um programa na inicialização do Windows usando o arquivo bat e enviar o caminho do arquivo

um arquivo bat ou vbs pode receber um argumento (um caminho para um arquivo exe), criar um atalho para esse arquivo e colocá-lo na pasta de inicialização ou adicionar uma entrada de registro para executar esse exe na inicialização do Windows

mas quero que o mesmo script seja capaz de remover também a entrada de inicialização (em todas as versões do sistema operacional).

então presumo que o script precisaria receber dois parâmetros/argumentos: 1 - o arquivo/exe a ser executado na inicialização 2 - adicionar ou remover a entrada da inicialização

Isso é possível?

Responder1

Primeiro, gostaria de aconselhá-lo a verificar novamente os locais das chaves de execução no registro de qualquer sistema operacional anterior ao Vista, pois já faz muito tempo que não trabalhei neles, então pode haver diferenças das quais não me lembro.

Se entendi sua pergunta corretamente, este script em lote deve fazer o que você deseja. Ele fornece um menu simples para escolher adicionar ou remover um programa das chaves de execução (inicialização) e permite inserir o nome e o caminho do programa para o executável.

: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, se você só precisa adicionar ou remover o mesmo programa e não precisa inserir vários nomes de programas ou caminhos exe, então você pode modificar o script assim e substituir% keyname% pelo nome do seu programa, e %expath% com o caminho para o seu executável (sem%) e salve-o. Certifique-se de que seu nome-chave seja o mesmo em adicionar e remover.

Você também pode trocar as linhas “goto start” por “exit” se quiser apenas sair do script após a ação selecionada.

: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

informação relacionada