czy możesz uruchomić program przy starcie systemu Windows za pomocą pliku bat i wysłać ścieżkę do pliku

2

czy plik bat lub plik vbs może przyjąć argument (ścieżkę do pliku exe), a następnie utworzyć skrót do tego pliku i umieścić go w folderze startowym lub dodać wpis rejestru, aby uruchomić ten plik exe podczas uruchamiania systemu Windows

ale chcę, aby ten sam skrypt mógł również usunąć wpis startowy (we wszystkich wersjach systemu operacyjnego).

więc zakładam, że skrypt musiałby zostać przesłany dwa parametry / argumenty: 1 - plik / exe, aby uruchomić przy starcie 2 - czy dodać lub usunąć wpis ze startu

czy to możliwe?

użytkownik 2899094
źródło
Tak, to możliwe. Sprawdź, jak przekazać argumenty do pliku wsadowego lub pliku VBS, oba obsługują go, a następnie po prostu dodaje instrukcje IF, aby je obsłużyć.
Jonno

Odpowiedzi:

2

Po pierwsze, chciałbym poradzić ci, aby dokładnie sprawdzić lokalizacje kluczy uruchamiania w rejestrze dla każdego systemu operacyjnego starszego niż Vista, ponieważ minęło dużo czasu, odkąd nad nimi pracowałem, więc mogą istnieć różnice, których nie pamiętam.

Jeśli dobrze rozumiem twoje pytanie, ten skrypt wsadowy powinien zrobić to, co chcesz. Daje ci proste menu do wyboru, aby dodać lub usunąć program z klawiszy uruchamiania (uruchamiania), a następnie pozwala wprowadzić nazwę i ścieżkę programu do pliku wykonywalnego.

: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

Alternatywnie, jeśli po prostu musisz mieć możliwość dodania lub usunięcia tego samego programu i nie musisz wpisywać wielu nazw programów lub ścieżek exe, możesz zmodyfikować skrypt w ten sposób i zastąpić% keyname% nazwą programu, a % expath% ze ścieżką do pliku wykonywalnego (bez%), a następnie zapisz go. Upewnij się, że nazwa klucza jest taka sama zarówno w przypadku dodawania, jak i usuwania.

Możesz także zamienić linie „goto start” na „exit”, jeśli chcesz wyjść ze skryptu po wybranej akcji.

: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
Some1ellse
źródło